分散式伺服器框架 框架簡介 此框架由三種伺服器組成: n個 :負責處理客戶端的網路鏈接,並轉發客戶端和邏輯伺服器之間的消息。 n個 :負責處理(由鏈接伺服器轉發過來的)客戶端的網路消息 1個 :負責處理全局邏輯 其實還額外需要一個神器: "etcd" ,作為伺服器框架中的 感知 的新增和失效 無論拓
分散式伺服器框架
框架簡介
- 此框架由三種伺服器組成:
- n個
連接伺服器
:負責處理客戶端的網路鏈接,並轉發客戶端和邏輯伺服器之間的消息。 - n個
邏輯伺服器
:負責處理(由鏈接伺服器轉發過來的)客戶端的網路消息 - 1個
全局伺服器
:負責處理全局邏輯 - 其實還額外需要一個神器:etcd,作為伺服器框架中的
邏輯伺服器
感知鏈接伺服器
的新增和失效 - 無論拓撲圖請參考
架構圖
:
- n個
- 框架內置組件:
- 多連接ssdb客戶端
- redis/ssdb代理伺服器
- 僅支持C++語言的RPC(支持protobuf類型消息,適合伺服器之間業務開發,並支持非同步回調)
既定規則(建議)
- 客戶端擁有最多兩個
邏輯伺服器
:分別是Primay和Slave - 當客戶端鏈接某
鏈接伺服器
會(自動)分配一個Primary類型的邏輯伺服器
(且不會、也不能重設) - 客戶端的消息優先(轉到到)Slave處理
邏輯伺服器
可自由設置客戶端的當前Slave- 當然,客戶端的Primay和Slave可以為同一個
邏輯伺服器
- 實際項目中,您可以藉助第三方負載均衡伺服器來分配
鏈接伺服器
的地址給客戶端. - 內置有
ssdb
客戶端和ssdb
代理伺服器,如果你的應用需要資料庫,不妨一試。
使用方式
- 開發應用時,只需要關註
客戶端
和邏輯伺服器
之間的消息設定,不需要考慮鏈接伺服器
,且沒有任何(需要引入的)預設消息。 - 開發應用時,只需要分別實現
邏輯伺服器
中的initLogicServerExt
函數 和 (可選)全局伺服器
中的initCenterServerExt
函數 (通常進行消息handle註冊即可)。 - 作為示例
中心伺服器
的擴展參考CenterServerExt.cpp邏輯伺服器
的擴展參考LogicServerExt.cpp- 測試客戶端請看:SimulateClient.cpp