採用Netty資訊載入實現長連線即時通訊系統,客戶端可以值任何場景,支援即時http通訊、webSocket通訊、tcp協定通訊、和udp協定通訊、廣播協定等透過http協議,rpc協定。 採用自訂網路封包結構, 實作自訂網路堆疊。
1:支援分散式zookeeper進行服務節點配置。
2:採用自訂註解形式實作netty私有訊息協定棧。
3:支援遠端RPC呼叫。
4:支持redis。
5:支援db分離。
6: 支援同步和非同步訊息處理
7: 支援kafka訊息佇列提供/消費模式來實現分散式訊息佇列
8: 支援資料加密傳輸,保障資料安全。
9: 支援分散式事務3pc提交,異常回滾。
1:遊戲伺服器
2:實時通訊系統
3:金融數據處理系統
4:對網路即時性要求較高的系統
5:常見互聯網系統
獨立資料db模組,獨立事務模組,獨立執行緒調度模組。以微服務的形式提供網路服務。
tcp通訊,採用netty實作tcp通訊,專案中可以利用comtwjitmcorestartGameService ,將啟動模式改為tcp伺服器啟動模式可以利用test中的testjavacomtwjitmClientServiceTest 可以模擬客戶端進行連接,需要將連接埠和位址改為tcp伺服器進行連接。 tcp訊息處理採用訊息佇列,將所有到來的訊息放到佇列中,透過線程池化技術來處理訊息。
UDP自訂網路協定棧和tcp自訂網路協定棧格式差不多,不同的是udp不需要建立連接,也就是無狀態的通訊模式,在訊息處理模組採用tcp連接的時候保存的session來決定是哪個客戶端發出的訊息,似的udp協定能夠正確的處理,透過兩種不同的訊息處理模式,進行選擇處理其中有:同步佇列模式;生產者-消費者模式。
HTTP協定同樣採用自訂網路協定棧實現,和tcp,udp協定差不多,只不過資料包不一樣,http是建立在tcp的應用層上的協定。 採用同步處理方式,當訊息到來的時候及時作出處理。
RPC模組分為同步調用和非同步調用,遠端伺服器調用,利用netty實現輕量級rpc伺服器框架,透過自訂執行緒讓步策略。結合動態代理等java搞基知識,實作rpc伺服器通訊模組。利用xml文檔配置rpc伺服器基本訊息,以達到動態的水平擴展伺服器。為分散式伺服器做好基礎準備
透過整合zookeeper,動態的註冊服務,發現服務,整合rpc邏輯,實現分散式服務發現和註冊。
透過整合kafka服務。實作分散式伺服器訊息佇列,解耦系統中的邏輯。
還在優化,優化專案中的空間複雜度,時間複雜度,對應時間,壓測能力等性能
本專案利用spring來統一管理一些bean,利用伺服器啟動的時候,統一將容器初始化提交給spring,利用spring提供的註解,輕鬆獲得注入到spring容器中的bean對象,提高程式碼的可讀性。
透過執行緒管理,伺服器事件更新採用獨立模式來更新伺服器事件,採用佇列模式來使得事件串列執行。
作者:好暱稱不隨便起twjitm qq:1089718215
部落格網址https://blog.csdn.net/baidu_23086307
個人網站網址;https://twjitm.com