02.22
Sat
話說今天小艾在的伺服器噴了兩次分流,一次中午噴掉 C1、C5,之後晚上 9點50幾分又噴掉 C3。
因為很久沒噴分流了,所以一些預防噴分流回朔的事情已經很少做了。

以下這些是小艾減少自己的角色在分流故障的時候回朔的損失的方法,只作為參考,不保證這方法的可用性。

一:習慣在做了某個重要的事情之後進行分流切換,或是登出再登入
例如:從寵物拿了裝或是從銀行拿了裝之後,切換一下分流或是登出再登入
小艾的作法是:假如小艾要到C4打副本,小艾會先去 C3 拿裝穿好,再過去 C4

二:做了某個重要的交易之後,登出再登入
例如:交易之後,先換到任何一個其他分流,之後再換回自己的分流
小艾的作法是:假如小艾買了或賣了某個東西,小艾會故意約在不是自己掛網的分流,交易完並且放好物品、支票之後再轉回掛網的分流。

三:看到某個分流沒有"活動"標示,就不登入那個分流
例如:像圖這樣,很明顯C3有問題,那就別去C3
活動分流

當然最根本的解決方法還是椪柑要把伺服器弄好,讓伺服器別再breakdown

以下是原因推測


以下這些推論純粹就小艾自己的經驗和推斷,不代表天線貓的實際設計情況。
因此別引用底下這些純推論的東西作為任何理論的依據。

遊戲的分流機制指的是每個分流都是一個獨立的主體(註1),他們的共用資訊為一個資料庫伺服器(註2)來管理。
這些東西不論它們放在同一個主機的不同虛擬伺服器還是不同主機上面,他們的共通點就是不准許互相干擾。
因此,它們不會直接鏡射自己的暫存資料、記憶體到另外一台伺服器上面,所以當你登入某某分流之後,你的資料會暫時鏡射到這台分流的伺服器,等到必要的時候才會把資料寫回資料庫(註3)。
而這個"必要"的時候有幾種情況「涉及登入登出資訊」、「涉及其他角色的資料庫資訊」、「涉及伺服器切換」(註4)

簡單的說 在 登出登入、切換分流、開關銀行 的時候會引發伺服器將資料寫回資料庫的事件。
因此假如你的人物什麼都沒做,那麼人物資訊被寫回資料庫的時間則是以伺服器端設定為主(不清楚天線貓怎麼設定的)。

以玩家打副本經常做的動作來說:
角色到了要打副本的地方集合->打開寵物(或是銀行)->拿出裝備穿上裝備->關掉寵物->進副本
假如進了副本之後,都沒遇到伺服器存檔的事件,分流就故障重啟的話,那麼這些拿出來的裝遺失的機率接近100%
因為角色資料還沒存檔,但是寵物打開和關閉的動作已經讓寵物的物品欄位存檔了,所以這些物品不會自動回去寵物上面。
寵物的部份:寵物召喚(形同登入)->物品A被取出->寵物解除召喚(形同登出)->將已經拿出武器的寵物物品欄位資訊存回資料庫
角色的部份:角色獲得物品A->角色進副本 <<這些都還在分流端的暫存記憶體裡面,一直到下次存檔才會轉進資料庫
當然運氣好點,你可能會在打副本的中間遇到伺服器設定的資料庫寫回時間,那麼就可能出現物品沒被回朔的情況。

以玩家交易常做的動作來說:
角色到了某處交易->交易完成獲得物品->然後沒變換過任何分流
假如之後沒遇到伺服器存檔事件,分流就故障的話,那麼這個物品會消失,至於錢會不會回來?
這得看這筆錢或是支票在你身上停留的時間有沒有存檔過,這就和上面說的拿裝備的情況一樣。

這些解釋了大多數的回朔情況,當然假如是資料庫伺服器崩掉則不在這個範圍內。
因此做出引發伺服器存檔你的角色資訊的動作,能夠確保你當前的物品欄位、經驗值等等資訊已經進入資料庫伺服器,雖然假如分流掛掉你可能會損失首領證、經驗值,但是能大幅度降低損失物品的機率。

註1:獨立伺服器不代表他是一台獨立的實體機器,假如以 VMware Server 掛載在實體機器底下,讓他們在獨立的系統上運作,例如以 Linux 為 Host 運行 VMware Server 掛載兩台 Windows Server 作為 Guest 的情況的話,則稱為兩台 Windows Server 伺服器,他就像是兩台伺服器一樣,其中一組故障不會影響另外一組,至於 Linux Host 本身算不算一台,得看他的功用。

註2:資料庫伺服器代表著一台用來作為資料存檔用的伺服器,通常使用各種SQL服務端作基礎,而且備份通常也是備份這個部份的資料。至於架設在哪,和主要運算分流之間怎麼運作,則完全看開發者的作法。

註3:會這樣做是為了避免頻繁寫入實體資料庫,以及加快角色在分流伺服器的運作速度,因為記憶體的讀寫速度是遠大於硬碟和SSD,對於角色資料這樣零散的資訊來說,每隔一段時間再一次寫入分流上的角色資訊會是一個比較有效率的方式,也避免 資料庫伺服器 對 分流伺服器 的頻寬被用光。

註4:因為這些分流必須維持獨立性,避免分流故障影響其他分流,因此當你的角色做出切換分流的動作的時候,你目前的分流的伺服器會將資料寫回資料庫伺服器,然後將你的角色登出,之後透過登入伺服器觸發另外一個分流的登入事件,讓那個分流去跟資料庫要求這筆角色資訊。


因為小艾自己玩過 asp.net + SQL 做非本機資料庫存取,當時翻過一些資料所以才這樣推斷,因此小艾不保證這些資訊的正確性,畢竟小艾能力範圍會接觸的伺服器端非常非常少,而且都是網站或是區域內共用資料庫這類的。

關於上面說得東西的正確性?
會補上最後這段是因為之前看過某討論區有人說自己架設過 RO私服 和 WOW私服,然後用來大談特談網路遊戲都是 TXT文件 做存檔之類其實錯誤的資訊,隨意傳播錯誤訊息覺得蠻沒道德的。
因此如果你實作過這類東西,而且發現上面有寫錯的地方請跟我講一下。
comment 0
留言:
只對管理員顯示
 
back-to-top