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

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


咨詢
建站咨詢
