新聞中心
大家好,今天小編關(guān)注到一個(gè)比較有意思的話(huà)題,就是關(guān)于游戲怎么做到服務(wù)器不停機(jī)維護(hù)(游戲怎么做到服務(wù)器不停機(jī)維護(hù)呢)的問(wèn)題,于是小編就整理了2個(gè)相關(guān)介紹為您解答,讓我們一起看看吧。

我們提供的服務(wù)有:成都做網(wǎng)站、網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、利川ssl等。為上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的利川網(wǎng)站制作公司
不停機(jī)更新的原理?
事實(shí)上,大多游戲服務(wù)器分為邏輯程序服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器,如果是線(xiàn)上運(yùn)營(yíng)的服務(wù)器,基本上是在至少兩臺(tái)主機(jī)上。
在發(fā)現(xiàn)幾個(gè)邏輯服務(wù)器中的bug,或者加了某些功能,比如少加了三個(gè)金幣,多算了一點(diǎn)經(jīng)驗(yàn)等,只需要在測(cè)試服測(cè)試完畢,上傳覆蓋執(zhí)行文件(jar或php),但是依然要重啟邏輯服務(wù)器進(jìn)程。
而Erlang的熱升級(jí)技術(shù),就帶了更好的體驗(yàn)。Erlang原本脫胎于電信行業(yè),Jow Armstrong 在描述Erlang的設(shè)計(jì)要求時(shí)期中就提到了“軟件維護(hù)應(yīng)該能在不停止系統(tǒng)的情況下進(jìn)行”。
在實(shí)踐中,因?yàn)檫@種不停服務(wù)的熱更新獲益良多,終于不用再等到半夜沒(méi)人的時(shí)候再做更新了,對(duì)于一些緊急的bug修復(fù),熱更新實(shí)在是一把利器。
Erlang熱更新的秘密其實(shí)都集中在wxxxcode-style模塊、wxxxcode-style模塊是Erlang Code Server暴露出來(lái)的對(duì)外接口,其職責(zé)就是把已經(jīng)編譯好的模塊加載到Erlang的運(yùn)行時(shí)環(huán)境。
代碼版本有兩個(gè)概念,當(dāng)前版本代碼“current”和老版本代碼“old”,一旦模塊被加載就變成“current”,再有一個(gè)版本過(guò)來(lái)被加載,之前的版本就變成“old”,新加載的變成“current”。
這時(shí)候,兩個(gè)版本還是同時(shí)存在,新的請(qǐng)求執(zhí)行的時(shí)候會(huì)使用新的版本,而老版本的代碼還會(huì)被使用因?yàn)檫€有其他模塊的調(diào)用“old”版本中。
再進(jìn)行一次熱更新,這時(shí)就有第三個(gè)實(shí)例被加載,wxxxcode-style server就會(huì)終止掉還在駐留在“old”版本代碼依賴(lài)的進(jìn)程。然后第三個(gè)實(shí)例成為“current”,之前版本的“current”被標(biāo)記成“old”。
游戲不停機(jī)維護(hù)數(shù)據(jù)如何改變?
1. 游戲不停機(jī)維護(hù)數(shù)據(jù)會(huì)讓游戲玩家的體驗(yàn)更好,但是會(huì)對(duì)游戲公司的運(yùn)營(yíng)和維護(hù)帶來(lái)一定的挑戰(zhàn),數(shù)據(jù)的改變是必須的;
2. 游戲公司一般會(huì)選擇在玩家流量最低的時(shí)刻進(jìn)行維護(hù)和數(shù)據(jù)改變操作,比如深夜或者凌晨,這個(gè)時(shí)候維護(hù)對(duì)于游戲玩家的影響最??;
3. 另外,游戲公司也會(huì)在游戲更新之前提前宣布維護(hù)的具體時(shí)間,讓玩家提前做好準(zhǔn)備,以免玩家在游戲過(guò)程中突然失去連接;
4. 總之,游戲不停機(jī)維護(hù)數(shù)據(jù)需要被精心安排,讓玩家和游戲公司都能夠受益。
游戲不停機(jī)維護(hù):
1,編寫(xiě)補(bǔ)丁代碼
2,重啟服務(wù)器 因?yàn)檠a(bǔ)丁代碼并不是立刻生效的,所以需要重啟游戲服務(wù)器
3,等待服務(wù)器重啟完畢 重啟游戲服務(wù)器意味著整個(gè)游戲服務(wù)器的邏輯和狀態(tài)都需要停止,所以需要等待服務(wù)器重啟完畢如果你是在公司里做一個(gè)分布式的游戲服務(wù)器,那你啟動(dòng)一下可能就需要半分鐘,一分鐘,甚至更長(zhǎng)的時(shí)間才能完整的把游戲的服務(wù)器里每一個(gè)進(jìn)程,進(jìn)程里附帶的數(shù)據(jù),全部啟動(dòng),這會(huì)對(duì)開(kāi)發(fā)會(huì)造成比較大的困擾,小項(xiàng)目還行,大項(xiàng)目就不行了,所以這是非常冗長(zhǎng)的一個(gè)步驟
4,跑流程 因?yàn)樵谕V狗?wù)器時(shí),游戲角色的一些狀態(tài)全部丟失了,那么為了重現(xiàn)這個(gè)bug,就必須把從登陸到bug出現(xiàn)的整個(gè)流程再重新走一遍,這又是一個(gè)非常耗時(shí)的過(guò)程
5,測(cè)試Bug是否消除 當(dāng)流程走完以后,就會(huì)再去測(cè)試這個(gè)bug是不是被消除了,如果bug被消除,那就改完了;如果沒(méi)有消除就還要再去調(diào)試,再去重啟服務(wù)器,再去等待服務(wù)器啟動(dòng)完畢,再跑一邊,一直跑到bug出現(xiàn)的點(diǎn)上要解決這個(gè)問(wèn)題可以讓服務(wù)器支持熱補(bǔ)丁,這樣就只需要通過(guò)一條特殊的指令,把之前已經(jīng)完成任務(wù)狀態(tài)改成未完成,再使用一下補(bǔ)丁代碼,讓補(bǔ)丁代碼生效,再把任務(wù)重新做一邊就可以了如果服務(wù)器能支持這樣的功能,那么對(duì)于開(kāi)發(fā)效率而言是有非常大非常明顯的提升的。
到此,以上就是小編對(duì)于的問(wèn)題就介紹到這了,希望這2點(diǎn)解答對(duì)大家有用。
新聞名稱(chēng):(游戲不停機(jī)維護(hù)數(shù)據(jù)如何改變?)
轉(zhuǎn)載來(lái)于:http://www.5511xx.com/article/djiecje.html


咨詢(xún)
建站咨詢(xún)
