欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案-創(chuàng)新互聯(lián)

隨著移動(dòng)終端硬件配置的飛速提升,手游行業(yè)開始從爆發(fā)期進(jìn)入相對(duì)穩(wěn)定的發(fā)展期。殘酷市場(chǎng)競(jìng)爭(zhēng)環(huán)境下,游戲公司紛紛尋求業(yè)務(wù)創(chuàng)新,手游重度化、VR/AR游戲、經(jīng)典IP回歸之外,游戲出海和全球服也成為新亮點(diǎn)。這也意味著云服務(wù)需要承載越來(lái)越多后端服務(wù)器的支撐工作,合理的平臺(tái)架構(gòu)將成為系統(tǒng)穩(wěn)定運(yùn)行的基礎(chǔ)保障。

為龍灣等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及龍灣網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都做網(wǎng)站、成都網(wǎng)站建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)、龍灣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

迄今為止,UCloud平臺(tái)支持的游戲已經(jīng)超過(guò)了1000余款,其中手游占據(jù)了70%以上。在這過(guò)程中我們也陪用戶踩過(guò)了很多“坑”,本文將結(jié)合以往的一些經(jīng)驗(yàn)和成功案例,為大家闡釋游戲架構(gòu)設(shè)計(jì)上,可能會(huì)遇到的一些問(wèn)題和解決方案。

場(chǎng)景A:All In One的MudOS架構(gòu)

MudOS是第一代游戲架構(gòu),目前應(yīng)該是無(wú)人使用的歷史里程碑了,之所以會(huì)在這里提到,是因?yàn)樵谠破脚_(tái),仍然有不少用戶使用數(shù)據(jù)、計(jì)算、日志全部集中于同一臺(tái)服務(wù)器的All In One集中式部署架構(gòu)。

游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案

以當(dāng)前的技術(shù)來(lái)說(shuō),公有云還沒(méi)能完全避免宕機(jī)對(duì)業(yè)務(wù)造成的影響,而宕機(jī)必然要導(dǎo)致業(yè)務(wù)一段時(shí)間內(nèi)的不可用。一旦出現(xiàn)云主機(jī)內(nèi)部系統(tǒng)崩潰,對(duì)于這種架構(gòu)的服務(wù)器更是災(zāi)難性的。因?yàn)闀r(shí)間和數(shù)據(jù)都很難保證,最終可能必須通過(guò)備份文件才能進(jìn)行回檔。

此外,集中式部署架構(gòu)對(duì)于云主機(jī)的性能要求非常高,隨著業(yè)務(wù)的增長(zhǎng),開發(fā)者經(jīng)常要重新調(diào)整配置,甚至最后直接購(gòu)買物理云主機(jī)。同時(shí),為了達(dá)到過(guò)高的性能要求,需要對(duì)云產(chǎn)品的硬件靈活性和彈性伸縮能力進(jìn)行取舍,即使在購(gòu)買了物理云主機(jī)的情況下,云平臺(tái)的成本優(yōu)化效果也無(wú)法達(dá)到大化。因此,希望大家在游戲設(shè)計(jì)中規(guī)避掉這種集中式部署架構(gòu),盡量使用邏輯服或者微服務(wù)的模式。

場(chǎng)景B:瘋狂掉線

掉線對(duì)所有游戲玩家來(lái)說(shuō)都是非常痛苦的事情,我們?cè)?jīng)手過(guò)一個(gè)瘋狂掉線的案例,這個(gè)案例的獨(dú)特之處在于玩家在游戲過(guò)程中很少發(fā)生卡頓和瞬移問(wèn)題,但是會(huì)經(jīng)常出現(xiàn)掉線現(xiàn)象,而且還是不定期的玩家集中掉線。掉線的時(shí)間點(diǎn)也非常巧合,基本上是在機(jī)房監(jiān)控到DDoS、或者地方級(jí)以上骨干容災(zāi)切換閃斷的時(shí)候。

我們初步分析可能是業(yè)務(wù)和網(wǎng)絡(luò)的特殊情況觸發(fā)的,在和用戶交流業(yè)務(wù)邏輯之后,了解到用戶的游戲設(shè)計(jì)采用的是TCP邏輯:業(yè)務(wù)1分鐘發(fā)出1個(gè)心跳包,如果30秒未收到ACK測(cè)試則認(rèn)為客戶端掉線需要重連。很明顯,這種設(shè)計(jì)并沒(méi)有考慮到丟包或錯(cuò)包等問(wèn)題。

因?yàn)閷?shí)際情況下,全球運(yùn)營(yíng)商的網(wǎng)絡(luò)設(shè)備都有一定的錯(cuò)包率或丟包率,1分鐘1個(gè)心跳包模式下,一旦發(fā)生丟包,玩家在1分30秒內(nèi)無(wú)法收到測(cè)試信息,必然會(huì)被系統(tǒng)剔除,導(dǎo)致掉線。而在容災(zāi)切換或者DDoS情況下,丟包或者錯(cuò)包的問(wèn)題會(huì)更加嚴(yán)重,玩家會(huì)集中掉線也就可以解釋了。

游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案

定位問(wèn)題后,我們幫助用戶對(duì)以上邏輯進(jìn)行了修改,將玩家的掉線時(shí)間從1分30秒收斂成30秒,設(shè)置業(yè)務(wù)每10秒3個(gè)心跳包,超過(guò)3個(gè)周期未收到則視為掉線。每10秒3個(gè)心跳包的情況下,超過(guò)30秒就有9個(gè)心跳包,只有當(dāng)這9個(gè)心跳包全部丟失,系統(tǒng)才會(huì)認(rèn)為玩家離線。邏輯修改后會(huì)形式一個(gè)緩沖區(qū),避免錯(cuò)包或丟包情況下造成的系統(tǒng)判斷失誤。

場(chǎng)景C:?jiǎn)吸c(diǎn)DB的危機(jī)

下圖的業(yè)務(wù)架構(gòu)設(shè)計(jì)得已經(jīng)相對(duì)完整,整個(gè)系統(tǒng)采用的是DB的主從架構(gòu),可能宕機(jī)造成的風(fēng)險(xiǎn)都已經(jīng)規(guī)避,唯一的疏漏在于用戶將Cache和業(yè)務(wù)綁定,一旦業(yè)務(wù)重啟,整個(gè)Cache就會(huì)被清空,同時(shí)如果Cache達(dá)到上限也造成業(yè)務(wù)異常。

游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案

有一次用戶的DB磁盤異常需要較長(zhǎng)時(shí)間恢復(fù),雪上加霜的是Cache即將寫滿,因?yàn)楦臄?shù)據(jù)庫(kù)指向必須重啟業(yè)務(wù),為了保證游戲的正常運(yùn)行,又不能把業(yè)務(wù)切到從庫(kù)。最后只好聯(lián)合當(dāng)時(shí)的DBA、內(nèi)核以及系統(tǒng)專家,耗費(fèi)大量時(shí)間來(lái)恢復(fù)主庫(kù)。

為了避免這種情況再次發(fā)生,后續(xù)用戶直接將Cache層拆分出來(lái)放到我們的高可用Redis上來(lái)保證系統(tǒng)的穩(wěn)定。

場(chǎng)景D:Redis崩潰

相信做游戲開發(fā)的人或多或少都經(jīng)歷過(guò)Redis崩潰問(wèn)題。本案例中,用戶采用了比較前沿的框架,它拋棄了傳統(tǒng)數(shù)據(jù)庫(kù),直接使用內(nèi)存存儲(chǔ)作為數(shù)據(jù)的唯一存儲(chǔ)器。全球服上使用的是微服務(wù)框架,不存在單點(diǎn)風(fēng)險(xiǎn),業(yè)務(wù)能力非常強(qiáng)。但因?yàn)樵谘邪l(fā)過(guò)程中第一次使用集群化,所以也踩過(guò)一些坑。

游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案

問(wèn)題一:Redis AOF造成短暫查詢堆積。解決方案是進(jìn)行分片操作,保證AOF時(shí)間不一樣,將整體業(yè)務(wù)查詢危機(jī)縮減下來(lái)。此外,針對(duì)游戲框架申請(qǐng)DPA,盡量減少刷數(shù)據(jù)的可能性。

問(wèn)題二:QPS極限僅能達(dá)到數(shù)千,甚至出現(xiàn)了不定期慢查詢卡死的情況。查看代碼和數(shù)據(jù)時(shí)發(fā)現(xiàn),用戶的業(yè)務(wù)語(yǔ)句中大量使用了KEYS命令且無(wú)任何限制,這就類似于在巨大的MySQL集群里select *, 解決方式是直接將所有KEYS風(fēng)險(xiǎn)語(yǔ)句進(jìn)行調(diào)整和范圍限制,保證業(yè)務(wù)的正常運(yùn)作。

另外,集群Redis是基于proxy和Redis分片實(shí)現(xiàn)的,而非集群的原生Redis對(duì)短連接的處理性能極差,并且由于單線程的特性,非常容易因?yàn)槎踢B接將CPU打滿。對(duì)于Redis來(lái)說(shuō),即使提供最強(qiáng)的44核CPU,最后程序運(yùn)行的結(jié)果也是1核跑滿,其它43個(gè)核圍觀。

因此,在設(shè)計(jì)游戲的時(shí)候,使用Redis要特別注意兩點(diǎn):1、集群Redis盡量少用Keys命令;2、主備Redis盡量不要使用短連接,因?yàn)槎踢B接過(guò)多會(huì)造成整體業(yè)務(wù)性下降,尤其在Redis特別集中的環(huán)境下,影響會(huì)非常嚴(yán)重。

場(chǎng)景E:Register Server 單點(diǎn)

下圖為一個(gè)實(shí)時(shí)對(duì)戰(zhàn)場(chǎng)景的全球服架構(gòu),架構(gòu)采用了自動(dòng)注冊(cè)機(jī)制,注冊(cè)服務(wù)器類似路由表功能,會(huì)保存所有微服務(wù)集群的節(jié)點(diǎn)IP信息以供業(yè)務(wù)節(jié)點(diǎn)需要時(shí)查詢調(diào)用。架構(gòu)左側(cè)上層為高可用數(shù)據(jù)庫(kù)、高可用內(nèi)存存儲(chǔ),下方是對(duì)戰(zhàn)服務(wù)器和平臺(tái)入口,右側(cè)為工會(huì)聊天室,框架里面接入了四個(gè)對(duì)戰(zhàn)服。這個(gè)框架的穩(wěn)定性和擴(kuò)展性都非常強(qiáng),主機(jī)狀態(tài)對(duì)整體業(yè)務(wù)的影響極小。

游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案

整個(gè)框架美中不足的是,最核心的注冊(cè)服務(wù)器采用的是單點(diǎn),且該服務(wù)器串行在整個(gè)業(yè)務(wù)的邏輯中,一旦服務(wù)器異常,同樣會(huì)造成整體業(yè)務(wù)不可用。如果不做任何修改,在后續(xù)上線運(yùn)維的過(guò)程中,不論是因?yàn)閴毫Α⑾到y(tǒng)還是其它原因,Register服務(wù)器都將會(huì)是一個(gè)巨大的技術(shù)風(fēng)險(xiǎn)。

針對(duì)上述問(wèn)題,我們根據(jù)不同的場(chǎng)景推薦了兩種不同的解決方案:

管控分離,通過(guò)中心推送+本地緩存機(jī)制旁路Register。這種方案適用于調(diào)用邏輯較為簡(jiǎn)單的情況;
影子備份,配置備用Register Server同步數(shù)據(jù)并切換。這種方案適用于注冊(cè)邏輯較為復(fù)雜的情況。

總結(jié)

本文主要簡(jiǎn)單介紹了不同場(chǎng)景、不同游戲案例當(dāng)中遇到的一些框架設(shè)計(jì)問(wèn)題和解決方案。下篇文章,將會(huì)以對(duì)戰(zhàn)類全球服游戲?yàn)槔?,重點(diǎn)講講游戲架構(gòu)的設(shè)計(jì)思路與技術(shù)實(shí)現(xiàn)。

作者介紹

沈皓:UCloud PathX產(chǎn)品早期方案設(shè)計(jì)者之一,深耕全球服游戲領(lǐng)域,曾全面負(fù)責(zé)多個(gè)知名游戲的全球/跨國(guó)業(yè)務(wù)對(duì)接、部署及落地。對(duì)于MOBA、RTS、FPS等各類游戲的出海全球化的需求、難點(diǎn)、架構(gòu)實(shí)現(xiàn)等有獨(dú)到見解。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前標(biāo)題:游戲開發(fā)經(jīng)驗(yàn)談(一):游戲架構(gòu)里隱藏的五個(gè)坑及其應(yīng)對(duì)方案-創(chuàng)新互聯(lián)
分享路徑:http://aaarwkj.com/article18/pjogp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)移動(dòng)網(wǎng)站建設(shè)、微信公眾號(hào)Google、建站公司關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司
日韩a国产v亚洲欧美精品| 伊人久久精品一区二区| 免费观看亚洲成人av| 黄色三级视频久久久| 亚洲综合色婷婷在线影院| 日本免费一区二区三区视频观看| 国产精品一区巨乳人妻| 少妇的诱惑免费在线看| 日韩美女搞黄色的网站| 日本福利资源在线观看| 热热久久这里只有精品| 熟女人妻av五十路六十路| 国产老熟女不带套91| 在线观看免费国产不卡| 美国一级二级三级黄片| 国产视频专区一区二区| 成人精品国产一区二区| 97青青草免费在线视频| 99久久成人国产精品免费| 国产av手机自拍看片| 午夜福利一区二区在线| 亚洲国产高清国产拍精品| 人妻有码中文字幕在线| 尤物天堂av一区二区| 日本不卡一区二区视频| 在线视频一区二区三区精品观看| 国语对白精品视频在线| 日本h电影一区二区三区| 人人妻人人澡人人爽的视频| 国产精品久久久久精品日日三级| 日韩精品伦理中文字幕| 年轻的母亲韩国三级| 国产精品国产亚洲av| 国产av白浆一区二区色爽黄| 亚洲一区二区三区熟女少妇| 日本高清久久一区二区三区| 激情综合色综合久久丁香| 亚洲精品网站国产高清| 精品一区二区三区亚洲| 国产国产成年年人免费看片| 国产一区二区在线乱码|