軟件介紹
mqant
mqant 是一款基于 Golang 語言的簡潔,高效,高性能的分布式游戲服務器框架,研發的初衷是要實現一款能支持高并發,高性能,高實時性的游戲服務器框架,也希望 mqant 未來能夠做即時通訊和物聯網方面的應用。
pymqant
pymqant是已經mqant相同的設計原理用python實現的,python版本設計的初衷并不是替代golang語言版本的mqant,而是希望mqant能充分利用python語言的優勢(豐富的開源庫),因此python是golang語言版本的mqant輔助版本
理論上pymqant也實現了mqant完全相同的功能,只是缺少一個網關模塊,可以用pymqant實現游戲的web api模塊,mqant實現對性能要求較高的游戲核心邏輯模塊,pymqant模塊與mqant模塊之間可以無縫相互調用。
特性分模塊機制
基于 golang 協程,開發過程全程做到無 callback 回調,代碼可讀性更高
RPC 支持本地和遠程自動切換
遠程 RPC 默認使用 rabbitmq,未來可以添加更多種類的通信協議
網關采用 MQTT 協議,無需再開發客戶端底層庫,直接套用已有的 MQTT 客戶端代碼庫,可以支持IOS,Android,websocket,PC 等多平臺通信
現如今只有多進程的架構才能達到支撐較多在線用戶,降低服務器壓力,降低單點故障所帶來的影響等要求,因此一個真正高可擴展的游戲運行架構必須是多進程的。
然而在游戲的開發和運營也是按步驟階段性進行的,尤其是現如今服務器硬件設備配置也越來越高的前提下,在游戲剛開始運營時單臺服務器就足夠支撐了,況且多進程部署所帶來的運維成本也相對較高。
mqant 的設計思想是在能用單臺服務器時能讓充分挖掘服務器的性能,而在需要多進程時再通過簡單的配置就可以實現分布式部署。
mqant 游戲服務器的運行架構
mqant 服務器是按模塊來劃分功能模塊的,例如 用戶管理,在線聊天,戰斗平臺等等都應該劃分為獨立的模塊
模塊之間通過 RPC 通訊,mqant 底層會根據實際情況選擇 rpc 數據交互的通信渠道,在調用模塊在同一個進程的情況下直接使用 golang chan 通訊,因此同進程內模塊通信性能不受影響。
為你推薦: