現在go語言比較流行的有leaf,gowold,origin。前兩個比較基礎,實現集群還需要進行二次的編碼設計。origin不一樣,只需要通過配置方便快速的集群。origin總體設計如go語言設計一樣,總是盡可能的提供簡潔和易用的模式,快速開發。 能夠根據業務需求快速并靈活的制定服務器架構。 利用多核優勢,將不同的service配置到不同的node,并能高效的協同工作。 將整個引擎抽象三大對象,node,service,module。通過統一的組合模型管理游戲中各功能模塊的關系。
origin引擎三大對象關系
---------------
* Node: 可以認為每一個Node代表著一個origin進程
* Service:一個獨立的服務可以認為是一個大的功能模塊,他是Node的子集,創建完成并安裝Node對象中。服務可以支持對外部RPC等功能。
* Module: 這是origin最小對象單元,強烈建議所有的業務模塊都劃分成各個小的Module組合,origin引擎將監控所有服務與Module運行狀態,例如可以監控它們的慢處理和死循環函數。Module可以建立樹狀關系。Service本身也是Module的類型。
更加詳細的參照項目地址:
https://github.com/duanhf2012/origin