棋牌遊戲-後端架構(1)

涉及技術:C++,PHP7,Swoole,mysql

主要分爲三大塊,後面一塊一塊來說。sql

1. 通信網關數據庫

全部遊戲Server均會主動註冊和全部通信網關創建鏈接,並監聽協議,緩存

每一個Server均有一個獨立的ServerID,客戶端在選擇遊戲時,會在每條消息協議中增長此ServerID,告訴通信網關消息往哪發。併發

涉及技術:C++\libevent實現異步消息處理轉發,採用自定頭+Protobuf協議。composer

細節:須要支持WebSocket及心跳處理。負載均衡

 

2.Web異步

提供API接口,主要用於玩家登陸、支付、活動、配置等。分佈式

涉及技術:Phalcon,PHP7,Redis消息隊列,分表分庫。微服務

PS:通常業務操做基本都是先操做緩存,再經過消息隊列寫入Mysql數據庫,提升併發能力,[不過現實中有點悲催,沒量]

 

 

3.微服務模塊,主要用於提供遊戲Server和Web間共用數據,解除依賴。

基於Redis+mysql+消息隊列進行數據高併發處理,利用雲服務的負載均衡作分佈式擴展。

主要涉及技術:Swoole+PHP7+Socket

 

注:Web和微服務以前的依賴代碼,經過composer來管理實現共用。

簡圖:

 

近來無事,後面再根據時間,一塊塊來寫寫,也回顧覆盤下,看看有什麼改進的地方。

相關文章
相關標籤/搜索