人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動(dòng)態(tài)

游戲服務(wù)器如何實(shí)現(xiàn)全球同服

發(fā)布日期:2021-07-24 17:28 | 文章來(lái)源:阿里云

  【小Y提示】文章部分內(nèi)容源于互聯(lián)網(wǎng),僅作參考!如需咨詢“游戲服務(wù)器如何實(shí)現(xiàn)全球同服”等有關(guān)服務(wù)器、云主機(jī)租用、托管、配置、價(jià)格問題,請(qǐng)隨時(shí)咨詢YINGSOO客服,獲取專業(yè)解答!

  【爆款主機(jī)】美國(guó)CN2服務(wù)器 | 德國(guó)物理服務(wù)器 | 韓國(guó)高防服務(wù)器

  【精選內(nèi)容】香港大帶寬服務(wù)器租用全面解析!

游戲服務(wù)器如何實(shí)現(xiàn)全球同服

  剛從東家離職,得知之前設(shè)計(jì)的服務(wù)端架構(gòu)被阿里和本公司以及本公司推薦,看起來(lái)不怎么普及解決方案,本著開源精神分享一下思路吧。

  既然面對(duì)全球用戶,必然是要做到服務(wù)的動(dòng)態(tài)拓展,自動(dòng)化部署,歸根結(jié)底還是如何改造成分布式服務(wù)器,老話題了。

  服務(wù)器的不同業(yè)務(wù)分別在不同模塊運(yùn)行應(yīng)該是共識(shí)吧,要是所有業(yè)務(wù)堆在一起,無(wú)法讓核心業(yè)務(wù)實(shí)現(xiàn)分布式,也就失去全球服的意義。

  不同模塊的通訊協(xié)議定制,簡(jiǎn)單說(shuō)就不同業(yè)務(wù)分布在不同進(jìn)程,他們之間的通訊能在局域網(wǎng)范圍內(nèi)也能彼此連接。

  然后要做的是業(yè)務(wù)最大程度解耦。比如郵件業(yè)務(wù)壓力比較小,只需要一臺(tái)服務(wù)器就能滿足需求,而戰(zhàn)斗服務(wù)器在同樣量級(jí)需要兩臺(tái)服務(wù)器,如果這兩個(gè)業(yè)務(wù)放在一起就不太合理了。

  如此帶來(lái)的問題是,面對(duì)繁多的業(yè)務(wù)類型如何部署。我能想到的方案是所有服務(wù)都打包進(jìn)docker,啟動(dòng)時(shí)加入環(huán)境變量來(lái)區(qū)分不同服務(wù)。

  關(guān)于服務(wù)發(fā)現(xiàn),有現(xiàn)成的開源方案consul+registrator,consul為核心,registrator監(jiān)聽docker.sock文件將新啟動(dòng)的服務(wù)注冊(cè)到consul內(nèi),docker.sock內(nèi)有container啟動(dòng)參數(shù),這樣獲取類型版本都能實(shí)現(xiàn)了,具體實(shí)現(xiàn)官方都有,這里就不介紹了。

  這樣通過(guò)consul就能獲得所有的服務(wù)類型以及每個(gè)服務(wù)類型下的所有地址和端口。

  解耦完業(yè)務(wù)部分以后,游戲存儲(chǔ)的分布式也有現(xiàn)成的解決方案,最新版本的redis已經(jīng)有cluster集群模式,這里需要在redis前端加一層代理用來(lái)計(jì)算key值的分布,隨著slot增加,redis會(huì)重新分配所有key,而訪問一個(gè)slot時(shí),key在另一個(gè)slot會(huì)返回所在slot節(jié)點(diǎn)的地址,如果在業(yè)務(wù)層反復(fù)嘗試讀取用戶數(shù)據(jù)并不合理,在所有slot前面寫一層代理計(jì)算key值所在slot保存業(yè)務(wù)層到數(shù)據(jù)庫(kù)的一次通訊可以得到結(jié)果,redis本身是開源的,他的key值分布的算法可以參考,github也有代理項(xiàng)目,自行搜索。

  之后必須要考慮的是所有服務(wù)的緩存問題,如果一個(gè)業(yè)務(wù)節(jié)點(diǎn)有用戶緩存,用戶訪問到這個(gè)業(yè)務(wù)的另一個(gè)節(jié)點(diǎn)就無(wú)法保證數(shù)據(jù)一致,因此在做業(yè)務(wù)設(shè)計(jì)時(shí)最大限度保證服務(wù)無(wú)狀態(tài),如果某個(gè)服務(wù)必須有狀態(tài)可以在某個(gè)kv存儲(chǔ)服務(wù)存下一個(gè)用戶對(duì)應(yīng)服務(wù)節(jié)點(diǎn)信息,在服務(wù)集群前面再加一層代理解析用戶信息獲取節(jié)點(diǎn)信息再做轉(zhuǎn)發(fā),目前nginx已經(jīng)支持tcp連接轉(zhuǎn)發(fā),還有haproxy也能用。代理需要做的是解開第一個(gè)包找到節(jié)點(diǎn)再做轉(zhuǎn)發(fā)。這里有個(gè)小trick,登錄服務(wù)如果作為一個(gè)代理轉(zhuǎn)發(fā)到業(yè)務(wù)服務(wù)可以控制根據(jù)客戶端發(fā)來(lái)的信息做不同版本區(qū)分從而實(shí)現(xiàn)業(yè)務(wù)服務(wù)器的灰度更新。

  總結(jié)下來(lái)所謂的全球方案只是解耦和服務(wù)發(fā)現(xiàn),根據(jù)需求使用不同工具,具體的坑還要踩,整體方案還是挺靠譜的,畢竟之前設(shè)計(jì)的架構(gòu)已經(jīng)成為成功案例了,呵呵噠,但是不論架構(gòu)多好都救不了業(yè)務(wù)出現(xiàn)問題。架構(gòu)層面能做的就是這些,當(dāng)然要真正做到全球同服還要服務(wù)提供商的支持,如何保證全球玩家連接通一服務(wù)器的延遲可以不影響游戲等等。全球服的架構(gòu)帶來(lái)的不僅僅是可以將所有玩家集中到一起,也可以降低服務(wù)器成本,運(yùn)維成本,維護(hù)成本。當(dāng)然也可以基于這樣的架構(gòu)做分服,只是把不同服的玩家分開處理業(yè)務(wù),可以說(shuō)是能夠兼容分服,業(yè)務(wù)層面可以完全實(shí)現(xiàn)。

  暢銷產(chǎn)品:香港站群服務(wù)器租用去首頁(yè)注冊(cè)領(lǐng)券!YINGSOO推出PHA挖礦服務(wù)器、PHA挖礦教程、Chia奇亞服務(wù)器、Swarm物理節(jié)點(diǎn)服務(wù)器Swarm母雞服務(wù)器、Swarm云節(jié)點(diǎn)服務(wù)器《Phala PHA挖礦資料大全》、《swarm bzz挖礦資料大全》,Swarm Bee節(jié)點(diǎn)租用請(qǐng)咨詢YINGSOO客服

版權(quán)聲明:本站文章來(lái)源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來(lái)源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來(lái)源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來(lái),僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。

相關(guān)文章

實(shí)時(shí)開通

自選配置、實(shí)時(shí)開通

免備案

全球線路精選!

全天候客戶服務(wù)

7x24全年不間斷在線

專屬顧問服務(wù)

1對(duì)1客戶咨詢顧問

在線
客服

在線客服:7*24小時(shí)在線

客服
熱線

400-630-3752
7*24小時(shí)客服服務(wù)熱線

關(guān)注
微信

關(guān)注官方微信
頂部