涉及技術:C++,PHP7,Swoole,
主要分為三大塊,后面一塊一塊來講。
1. 通訊網關
所有游戲Server均會主動注冊和所有通訊網關建立連接,並監聽協議,
每個Server均有一個獨立的ServerID,客戶端在選擇游戲時,會在每條消息協議中增加此ServerID,告訴通訊網關消息往哪發。
涉及技術:C++\libevent實現異步消息處理轉發,采用自定頭+Protobuf協議。
細節:需要支持WebSocket及心跳處理。
2.Web
提供API接口,主要用於玩家登錄、支付、活動、配置等。
涉及技術:Phalcon,PHP7,Redis消息隊列,分表分庫。
PS:一般業務操作基本都是先操作緩存,再通過消息隊列寫入Mysql數據庫,提高並發能力,[不過現實中有點悲催,沒量]
3.微服務模塊,主要用於提供游戲Server和Web間共用數據,解除依賴。
基於Redis+mysql+消息隊列進行數據高並發處理,利用雲服務的負載均衡做分布式擴展。
主要涉及技術:Swoole+PHP7+Socket
注:Web和微服務之前的依賴代碼,通過composer來管理實現共用。
簡圖:
近來無事,后面再根據時間,一塊塊來寫寫,也回顧復盤下,看看有什么改進的地方。