框架結(jié)構(gòu)圖
框架簡(jiǎn)介
《GOS》是一款基于Go語(yǔ)言的分布式游戲服務(wù)器框架,高可用、動(dòng)態(tài)伸縮昧甘、在線擴(kuò)容件豌,可應(yīng)用于市面上絕大多數(shù)游戲類型:SLG、RPG喷斋、ARPG唁毒、MMO蒜茴、MOBA。
結(jié)構(gòu)詳解
AuthService
驗(yàn)證服務(wù)浆西,提供賬戶注冊(cè)粉私、玩家登陸,以及為玩家獲取連接服務(wù)(AgentCell)信息的功能近零。
AgentMgr
連接服務(wù)管理器诺核,連接服務(wù)負(fù)載均衡管理,根據(jù)當(dāng)前負(fù)載情況為玩家分配的連接服務(wù)久信。向集群管理器申請(qǐng)開辟和釋放連接服務(wù)窖杀。
GameMgr
游戲服務(wù)管理器,游戲服務(wù)負(fù)載均衡管理裙士,根據(jù)當(dāng)前負(fù)載情況為玩家分配游戲服務(wù)入客。向集群管理器申請(qǐng)開辟和釋放游戲服務(wù)。
RootMgr
集群管理器腿椎,管理整個(gè)分布式服務(wù)桌硫,云服務(wù)器創(chuàng)建與移除,分布式服務(wù)部署啃炸,游戲場(chǎng)景管理铆隘。
Agent
連接服務(wù),轉(zhuǎn)發(fā)玩家信息至游戲服務(wù)南用,轉(zhuǎn)發(fā)游戲服務(wù)信息至玩家咖驮,處理游戲內(nèi)廣播消息。
Game
游戲服務(wù)训枢,游戲場(chǎng)景管理托修,處理玩家請(qǐng)求,游戲邏輯的主要發(fā)生地恒界;加載睦刃、持久化場(chǎng)景、玩家信息至MySQL集群十酣。
Scene
游戲場(chǎng)景涩拙,每個(gè)游戲服務(wù)內(nèi)包含一個(gè)或多個(gè)游戲場(chǎng)景,場(chǎng)景可以是MMO的每個(gè)場(chǎng)景地圖耸采,也可以是SLG的世界地圖兴泥,還可以是MMO的大廳服務(wù),甚至可以是一個(gè)游戲服虾宇。場(chǎng)景的大小粒度搓彻,可以根據(jù)游戲的實(shí)際情況而定,游戲場(chǎng)景概念是《GOS》進(jìn)行負(fù)載分布的核心設(shè)計(jì)。
Hot Data
熱數(shù)據(jù)管理旭贬,由于游戲內(nèi)玩家數(shù)據(jù)會(huì)頻繁變更怔接,所以游戲場(chǎng)景和玩家啟動(dòng)后會(huì)將其相關(guān)的數(shù)據(jù)加載到內(nèi)存中,并由Hot Data進(jìn)行管理稀轨,并定時(shí)的回寫到MySQL集群扼脐。
MySQL Cluster
數(shù)據(jù)庫(kù)集群,主要用于保存玩家數(shù)據(jù)和游戲場(chǎng)景數(shù)據(jù)奋刽;由于當(dāng)下云服務(wù)已經(jīng)非常成熟和完善瓦侮,這里建議直接使用云服務(wù)的RDS服務(wù),在后臺(tái)點(diǎn)點(diǎn)點(diǎn)就能創(chuàng)建一個(gè)MySQL集群佣谐,讀寫性能和數(shù)據(jù)安全性都有保證脏榆。
Redis Cluster
Redis集群,主要用于集群配置信息保存台谍,玩家Session緩存须喂;Redis集群可以自己根據(jù)Redis官網(wǎng)搭建,同時(shí)也推薦大家使用云服務(wù)趁蕊,簡(jiǎn)單快捷穩(wěn)定坞生,費(fèi)用不高。
????????以上是一個(gè)簡(jiǎn)要的框架設(shè)計(jì)介紹掷伙,算是個(gè)開始是己;《GOS》也在緊鑼密鼓的逐漸完善中(當(dāng)然是利用業(yè)余時(shí)間)。將思路記錄在這里任柜,一方面可以幫助自己縷清思路卒废,另一方面監(jiān)督自己持續(xù)完善,當(dāng)然如果還能幫助到其他服務(wù)器研發(fā)人員就是Bonus了宙地!歡飲各位批評(píng)指正摔认,一同討論~