国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
君臨天下服務(wù)端架構(gòu)調(diào)研

前面的話:本文只是本人單純的臆測,如有雷同,純屬巧合。


1、游戲說明

玩法跟COC基本沒區(qū)別,只不過除了普通的兵,多了一些武將,并且社交系統(tǒng)比COC加強(qiáng)了不少,但總體來說交互性和實(shí)時性還是比較弱的。閱讀以下文檔之前最好對此款游戲有一些基本了解。此文檔目的在于理清使用云平臺架構(gòu)全球大服的思路,若以后有類似的需求,可以進(jìn)行一些參考。

 

2、機(jī)房架構(gòu)及說明

首先看看全局的架構(gòu)圖:


首先,各種渠道的客戶端限制了玩家連接的機(jī)房,比如大陸的包只能連到阿里云,跟其他因素?zé)o關(guān),即使IP是美國、香港也是如此,這樣可以盡可能的靠近玩家,不會讓網(wǎng)絡(luò)連接過慢影響體驗(yàn)。游戲在檢測到新玩家的時候就給玩家加一個標(biāo)識,比如大陸玩家標(biāo)識為CN,香港玩家標(biāo)識為HK,這一點(diǎn)跟COC是一樣的。

另外看到在大陸地區(qū)使用了阿里云,其他地區(qū)都使用了亞馬遜,同樣的一套東西使用2個服務(wù),多多少少有些別扭,這是因?yàn)閬嗰R遜當(dāng)時在大陸沒有機(jī)房,但最近在北京開設(shè)了機(jī)房,如果以后要使用云服務(wù),最好就統(tǒng)一使用同一個服務(wù)商提供的服務(wù)了。(阿里云在9月初又出故障,你還敢用嗎?)

每個機(jī)房構(gòu)成了一個區(qū)域服,屬于這個區(qū)域的玩家的一些私有數(shù)據(jù)存儲在各自的區(qū)域服中,比如在線獎勵、任務(wù)、背包、郵件、本地副本、好友列表等一些玩家私有數(shù)據(jù),因?yàn)檫@些數(shù)據(jù)跟其他的玩家不會發(fā)生交互,所以存放在各自的區(qū)域服即可。

另外一些可能跟其他區(qū)域玩家交互的數(shù)據(jù),如公眾聊天、軍團(tuán)數(shù)據(jù)、LBS,則統(tǒng)一放在一個機(jī)房,在圖中則假設(shè)放在新加坡機(jī)房,另外還會處理一些全局的事務(wù),如軍團(tuán)戰(zhàn)的倒計(jì)時等。

具體把公共數(shù)據(jù)和公共服務(wù)放在哪個機(jī)房需要具體分體具體分析,其中一個因素是根據(jù)各機(jī)房之間的網(wǎng)絡(luò)時延,由于需要在服務(wù)器之間傳輸數(shù)據(jù),需要找到一個與各個機(jī)房傳輸網(wǎng)絡(luò)最好的機(jī)房。

當(dāng)各機(jī)房之間需要發(fā)生一些交互時,通過遠(yuǎn)程RPC的方式來進(jìn)行交互。

 

3、機(jī)房內(nèi)部架構(gòu)圖

再看看內(nèi)部的架構(gòu)圖:


下面來分塊講解,由于看不到君臨天下的具體實(shí)現(xiàn),所以以下部分把所有可能的方案都列舉了出來,僅供參考。

 

負(fù)載均衡器

使用它的目的是為了防止區(qū)域同時在線玩家過多。

 

阿里云方面提供的產(chǎn)品是:負(fù)載均衡SLB。

相關(guān)地址為:http://www.aliyun.com/product/slb/?spm=5176.383338.201.10.MiaoNt

亞馬遜方面提供的產(chǎn)品是:Elastic Load Balancing。

相關(guān)地址為:https://aws.amazon.com/cn/elasticloadbalancing/

另外也可以自行搭建,如最新的Nginx版本就可以提供這些功能。

 

游戲邏輯服和全局后臺任務(wù)

這里的服務(wù)是跑在阿里云或者亞馬遜的虛擬主機(jī)中,具體的業(yè)余由于邏輯開發(fā)人員制定,但要保證不能存儲狀態(tài)數(shù)據(jù),要保證一個玩家連接到任何一臺邏輯服上都是一樣的,邏輯服中也包含遠(yuǎn)程RPC的服務(wù),如果使用ApacheThrift來做遠(yuǎn)程RPC可減輕開發(fā)工作。

 

分布式緩存集群

緩存一些使用頻繁的數(shù)據(jù)。

 

阿里云方面提供的產(chǎn)品是:開放緩存服務(wù)OCS,支持Memcached協(xié)議。

相關(guān)地址為:http://www.aliyun.com/product/ocs/?spm=5176.383633.3.8.7LIixc

 

還有:鍵值存儲KVStore for Redis,支持Redis協(xié)議。

相關(guān)地址為:http://www.aliyun.com/product/kvstore?spm=5176.683009.3.9.Eb6gfl

 

亞馬遜方面提供的服務(wù)是:Amazon ElastiCache,同時支持Memcached協(xié)議和Redis協(xié)議。

相關(guān)地址為:https://aws.amazon.com/cn/elasticache/

 

另外也可以自行搭建一套,個人建議使用Redis 3.0的集群版本。

 

分布式數(shù)據(jù)庫集群

阿里云和亞馬遜都提供了MySQL的服務(wù),但都是單機(jī)的主從架構(gòu),存在單機(jī)瓶頸,無法橫向擴(kuò)展,雖然阿里云提供了一個解決方案,就是引入了一個中間件來自動分表分庫,相關(guān)地址為:http://www.aliyun.com/product/drds/?spm=5176.7630237.3.32.y4m8wM

但因?yàn)樵趤嗰R遜上沒有這種服務(wù),所以不推薦使用,故下面主要介紹NoSQL的產(chǎn)品,它的好處就是不需要關(guān)注可擴(kuò)展性的問題。

 

另外如果實(shí)在需要MySQL,也可以自行搭建,如使用一些相對比較成熟的開源方案。

如阿里開源的Cobarhttps://github.com/alibaba/cobar

OneProxyhttp://www.onexsoft.com/?page_id=3383

優(yōu)勢是可以自動的分庫分表,對應(yīng)用層開發(fā)透明,缺點(diǎn)是會損失一部分功能,如無法使用存儲過程,無法跨庫進(jìn)行JOIN操作,不過這點(diǎn)對互聯(lián)網(wǎng)以及游戲業(yè)務(wù)來說影響不大。

 

阿里云提供的NoSQL產(chǎn)品為:開放結(jié)構(gòu)化數(shù)據(jù)服務(wù)OTS

相關(guān)地址為:http://www.aliyun.com/product/ots/?spm=5176.7622920.3.7.TAp1cO

 

亞馬遜提供的NoSQL產(chǎn)品為:Amazon DynamoDB

相關(guān)地址為:https://aws.amazon.com/cn/dynamodb/

 

若自行搭建可選用Mongo、HBase等,這方面的候選方案比較豐富,可酌情選擇。

 

分布式文件系統(tǒng)

主要是存儲一些日志、戰(zhàn)報(bào)等文件。

 

阿里云提供的服務(wù)為:開放存儲服務(wù)OSS

相關(guān)地址為:http://www.aliyun.com/product/oss/?spm=5176.7393637.3.10.PBAGYg

 

亞馬遜這一塊服務(wù)分得比較細(xì),可根據(jù)實(shí)際需求使用,如圖:


相關(guān)地址為:https://aws.amazon.com/cn/products/?nc2=h_ql

 

自行搭建的話,若量不大,可存本地文件系統(tǒng),如有必要可搭建分布式文件系統(tǒng),如HDFS等等。

 

隊(duì)列系統(tǒng)

引入的目的是會使用到一些Pub/Sub、異步計(jì)算等場景。

 

阿里云相關(guān)服務(wù)為:開放消息服務(wù)ONS

相關(guān)地址為:http://www.aliyun.com/product/ons/?spm=5176.383663.3.33.iByuFr

值得一提的是此服務(wù)支持延時消息。

 

亞馬遜相關(guān)服務(wù)為:Amazon SQS

相關(guān)地址為:https://aws.amazon.com/cn/sqs/

不過功能略為簡單,不能滿足一些場景,不推薦使用。

 

也可以自行搭建,如RabbitMQRocketMQ等,若要支持延時隊(duì)列,建議使用Beanstalkd,總而言之根據(jù)具體的場景來選擇。

關(guān)于CDNDNS、推送等一些技術(shù)方案此處先略過。

 

4、某些功能服務(wù)端方面的流程的分析

這里對一些需要涉及跨區(qū)域交互的游戲功能的服務(wù)端流程進(jìn)行一些分析,僅是自己的主觀分析。

 

場景世界排行榜

各個區(qū)域都維護(hù)一份自己的前200名的排行榜,定時再去其他區(qū)域拉取指定的前200名的排行榜,合并成一份世界前200名的排行榜即可。


場景攻城略池

就是找其他一些玩家攻擊,其實(shí)搜到的玩家都是本區(qū)域的,如果實(shí)在要搜別的區(qū)域的玩家,可以定時去拉取一批玩家數(shù)據(jù)過來,再隨機(jī)返回一個即可。戰(zhàn)斗結(jié)束后,向雙方的攻擊/防守日志中插入一條記錄,對于非本區(qū)域的玩家,則進(jìn)行遠(yuǎn)程RPC調(diào)用一下即可。

 

場景群雄爭霸

類似于競技場,從一個時間段開始,比如上午7點(diǎn)開始,隨機(jī)抽取全世界的一些玩家到一個小組里,你可以攻擊小組里的其他玩家,到了規(guī)定的時間后結(jié)算排名,可以領(lǐng)取排名獎勵。

可以在區(qū)域服的公共定時任務(wù)中來做,同樣也是從其他區(qū)域服中拉取其他玩家的數(shù)據(jù)來生成小組。


場景公眾聊天

對于公眾聊天,游戲?qū)φZ言進(jìn)行區(qū)分,分為中文、英語、韓語、日語做了區(qū)分,華語渠道的玩家只能進(jìn)中文聊天室,日本渠道玩家只能進(jìn)日語聊天室,韓國渠道玩家只能進(jìn)韓語聊天室,其他渠道玩家只能進(jìn)英文聊天室。

這是因?yàn)橛螒驔]有像COK那樣做翻譯功能,只能做這樣的限制,讓說同一種語言的人在一起聊天。

另外處于性能考慮,公眾聊天切分成了數(shù)個聊天室,如下圖:


這樣做可以降低聊天消息的廣播,這也是出于對網(wǎng)絡(luò)延遲和性能的考慮。當(dāng)某個聊天室的玩家發(fā)言后,就把該消息發(fā)向本區(qū)域和其他區(qū)域的處于同一個聊天室中的其他玩家。當(dāng)玩家退出,再次登錄進(jìn)入聊天室時,并不能獲取之前的聊天記錄,可見不會存儲公眾聊天。

 

場景好友系統(tǒng)

搜索好友的功能,應(yīng)該是交給全局服務(wù)區(qū)域來完成的,這里假設(shè)是在新加坡完成的,新加坡定時把其他區(qū)域的玩家基礎(chǔ)表(只包含頭像ID、等級等基礎(chǔ)數(shù)據(jù))異步增量同步一次。依據(jù)是對于剛注冊的用戶,無論是在本區(qū)域還是其他區(qū)域,都無法搜索到,而對于隨機(jī)一個高等級的玩家來說,在本區(qū)域后者其他區(qū)域都可以搜到。這樣做降低了實(shí)時性,降低了開發(fā)難度。

搜到好友之后可以查看玩家更具體的資料,如擁有的武將,陣形等等,可以通過國家來判斷在哪個區(qū)域,遠(yuǎn)程RPC來獲取資料。

然后可以申請?zhí)砑訉Ψ綖楹糜眩彩抢眠h(yuǎn)程RPC的方式通知對方,把自己添加到對方的好友申請列表中。對于玩家留言也是如此。

最后是LBS,應(yīng)該也是全局處理的。

 

場景軍團(tuán)系統(tǒng)

軍團(tuán)是各個區(qū)域的玩家都能夠隨意加入或者離開的,軍團(tuán)沒有國家的概念,故軍團(tuán)的數(shù)據(jù)應(yīng)該是在全局區(qū)域存儲的,這里是存儲在新加坡,數(shù)據(jù)包括軍團(tuán)成員、軍團(tuán)科技等等,玩家獲取或修改軍團(tuán)數(shù)據(jù)通過遠(yuǎn)程RPC操作。

對于軍團(tuán)搜索,剛創(chuàng)建的軍團(tuán)是可以馬上搜索到的,這也印證了軍團(tuán)的數(shù)據(jù)是全局存儲的。

對于軍團(tuán)聊天,跟公眾聊天的處理方式是類似的,區(qū)別是會存儲聊天記錄。

對于軍團(tuán)援兵,就是廣播給其他的在線的軍團(tuán)成員請求援兵,對方收到通知后則回饋,否則不做處理。

軍團(tuán)戰(zhàn)的邏輯也基本沒什么新意,不贅述。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
游戲跨服架構(gòu)進(jìn)化之路
支撐微博千億調(diào)用的輕量級RPC框架:Motan
微博config service實(shí)踐
從螞蟻金服微服務(wù)實(shí)踐談起
用這17 張圖就能寫好技術(shù)方案!
《看門狗:軍團(tuán)》有大量建筑可探索 內(nèi)部結(jié)構(gòu)完善
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服