1. 程式人生 > >遊戲伺服器架構中的中心節點

遊戲伺服器架構中的中心節點

議會制 Vs 君主制

分散式的伺服器架構有點像議會制度,每一個節點都可以參與制定管理策略,進行一部分工作(徵稅,作戰或是處理遊戲邏輯,儲存)。中心集中式的伺服器(比如比較古老的單程序伺服器架構),則把所有工作集於一身,自己愛幹嘛就幹嘛,毫無約束。他們的缺點也很明顯,對於議會制,關鍵時刻誰說了算,會不會出現僵持;對於君主制,君主會不會玩火,萬一君主仙逝了,會不會出現黑暗時代。於是,我們發現了一種更加平衡的制度。

 

元老院制度

古羅馬時,元老院和執政官是權利的兩級(當然,其實還有公民大會,但公民大會往往是站在元首一邊的)。特別是到了奧古斯都時期,元首完全接管了重要事務的決策,而元老院也會進行一些制衡和支援。比如,一些相對富庶的行省會由元老院來接管,他們只需要負責把徵收到的稅按一定比例支付給皇帝(元首)即可。對於,元首提出的議案,他們也有權進行表決,決定一項法律最終是否可以通過,或是一項議題是否可以落實。元首為了表達自己不是皇帝,讓廣大市民以為他並不是專制的,他自稱自己為“第一公民”。

1stGame的優勢

預設決策人。

把一些需要反覆排程又比較穩定的流程(比如登陸,充值回撥處理)交給他,簡化框架複雜度。並不是所有模組都迫切需求並行的(多個Game可以實現並行,增加吞吐量),並行的同時往往會帶來複雜度,所以需要進行權衡。

管理分散式節點。

給分散式節點編號命名。獲取各個節點的狀態,收集資訊,輔助節點之間連線的建立。

排程分散式節點。

分散式節點只需要連線上1stGame,就可以直接獲取整個網路的資訊。而類似於組建伺服器網路(啟動伺服器程序組),解散伺服器程序組(關服),在有一個排程人的情況下會更加簡單。

注意的地方

禁止邏輯氾濫

中心節點壓力邏輯過大,會無法保證其工作的穩定性,造成需要支援熱更新等額外的代價。我們希望1stGame是一個micro core的服務節點,邏輯非常穩定,構造非常簡單。

關注計算壓力

單節點可能會成為伺服器組的阿克琉斯之踵,這一點勿容置疑。所以,我們需要避開一些高負載的工作,讓1stGame去進行工作的排程,而不是具體的工作本身。

安全性

因為可以付費全域性的控制,應該特別安全。比如,應該沒有直接的對外埠開放(或僅有限制ip的對外埠),專門的登陸通道安全認證。