回覆列表
  • 1 # pflus25114

    線上更新,更新過程中可以正常進行遊戲,不用停機。不停機更新一般都都是進行比較小規模的更新·,大規模的(比如版本的更迭)都是要停機更新。停機維護的根本意義在於讓伺服器休息一下處理一下資料或者更新系統新檔案和內容。伺服器就像一起玩局域網遊戲一樣,也是一臺電腦,但能力很大,配置很高,開久了會影響執行程式速度。在停機維護之前,服務商一般會發布公告、提示停機維護的時間段,以提醒使用者做好相應準備。停機維護期間使用者無法使用服務商所提供的服務,停機維護經常會在公告的時間段之前進行完畢。不僅僅是網遊需要進行停機維護,一些大型的系統有時也要進行停機維護,以維持系統的正常執行。不停機更新技術:事實上,大多遊戲伺服器分為邏輯程式伺服器和資料庫伺服器,如果是線上運營的伺服器,基本上是在至少兩臺主機上。在發現幾個邏輯伺服器中的bug,或者加了某些功能,比如少加了三個金幣,多算了一點經驗等,只需要在測試服測試完畢,上傳覆蓋執行檔案(jar或php),但是依然要重啟邏輯伺服器程序。而Erlang的熱升級技術,就帶了更好的體驗。Erlang原本脫胎於電信行業,Jow Armstrong 在描述Erlang的設計要求時期中就提到了“軟體維護應該能在不停止系統的情況下進行”。在實踐中,因為這種不停服務的熱更新獲益良多,終於不用再等到半夜沒人的時候再做更新了,對於一些緊急的bug修復,熱更新實在是一把利器。Erlang熱更新的秘密其實都集中在code模組、code模組是Erlang Code Server暴露出來的對外介面,其職責就是把已經編譯好的模組載入到Erlang的執行時環境。程式碼版本有兩個概念,當前版本程式碼“current”和老版本程式碼“old”,一旦模組被載入就變成“current”,再有一個版本過來被載入,之前的版本就變成“old”,新載入的變成“current”。這時候,兩個版本還是同時存在,新的請求執行的時候會使用新的版本,而老版本的程式碼還會被使用因為還有其他模組的呼叫“old”版本中。再進行一次熱更新,這時就有第三個例項被載入,code server就會終止掉還在駐留在“old”版本程式碼依賴的程序。然後第三個例項成為“current”,之前版本的“current”被標記成“old”。這種方法有效降低了因版本升級而導致的使用者流失。

  • 中秋節和大豐收的關聯?
  • 你的家族裡出現過的最顯赫的人有多顯赫?