乾貨,pomelo路由解讀

2021-09-28 21:12:38 字數 1084 閱讀 2378

pomelo的初衷是後台伺服器無狀態,因此它可以任意使用配置規則來擴充套件其後台伺服器以承載更多的遊戲玩家,但實際上還是要面臨a玩家在cs1前台並在bk1後台的問題。 

假如玩家a被分配在了空閒的cs1前台,並且cs1前台路由的是比較合適的bk1後台 

看圖:由於還有bk2後台,因為cs1需要知道如何來選擇此玩家的請求被正確處理。因為邏輯部分最終是落在bk1上的,因此我們認為玩家a在bk1是有狀態的。

pomelo的解決方法是實現自己的路由演算法 

這個路由演算法來保證玩家a的請求被正確的處理到了正確的bk上 

如果路由演算法不穩定,玩家a被分配到了bk1上,卻想通過bk2來處理請求那麼就會產生問題。

以chat為例: 

假設玩家a被add到了bk1上,卻呼叫了bk2的send方法,後果是channel無法處理sendmessage請求,因為channel是本地的,每個程序乙個自己的channel.因此這個玩家這個請求是不會被處理的。 

來看下chat是如何處理路由的

// 這裡是乙個穩定輸出

// util/dispatcher.js

module.exports.dispatch = function(key, list) ;

if(!chatservers || chatservers.length === 0)

var res = dispatcher.dispatch(session.get('rid'), chatservers);

cb(null, res.id);

};如果你不配置自己的route演算法,那麼pomelo將啟用預設的route演算法。 

實際上你都應該編寫自己的路由演算法,在大型專案中,我們只要確保路由演算法的穩定性,就能輕鬆應對玩家數量的增漲。

寫在結尾  

這個**解決了大家開始設計階段的問題,輕量級的各種設計模型,強烈推薦 

本文中的插圖皆由此工具繪製

華為路由器ospf路由表解讀 聊聊路由器的工作過程

網路的互聯互通,通常離不開大型路由器裝置,下面我們來聊聊路由器的工作過程,先來看看一張地鐵的線路圖。我們思考一下,乘坐地鐵從竹子林站如何到達華強北站?細心的朋友們都看得出來有上十個方案,這些方案中有換乘最少的,也有停站最少的,通常人們心中有一套最佳的方案,下次去同樣的地方還用同樣的方案。路由器也是這...

來鑫乾貨解讀 迅雷鏈到底有什麼了不起?

10月25日,迅雷鏈技術沙龍第三站在香港銅鑼灣禮頓中心如期舉行。同此前兩站情況一樣,本次沙龍也匯聚了大量當地的區塊鏈技術愛好者 開發者和企業家,現場互動頻頻,場面火爆。迅雷鏈總工程師來鑫就當前區塊鏈3.0的要點和挑戰,結合迅雷鏈的技術特性做了全面而深入的分析交流。區塊鏈3.0的四大要點 在來鑫看來,...

微擎url模式解讀 URL路由 建立

toc 1,4 url路由 入口指令碼程式獲取到到url中相關的get引數,解析後進行許可權判斷,然後呼叫相應的控制器處理這個請求。該過程就被稱為url路由 routing 解析路由 位址url位址路由 當傳入的url請求中包含乙個名為 c a do 可選 的 get 引數,它即被視為乙個路由,例如...