1)像pomelo這種啓動方式搞得讓被人容易迷惑,是單進程啓動後,再fork啓動其它進程。java
2)個人思路以下:服務器
每每一個遊戲服務器模塊劃分後,分爲:微信
WebServer多線程
GateServer分佈式
SystemServer + GameServerui
因爲咱們是採用netty,是單進程多線程服務器,實際能夠分進程這樣手動啓動:
1.GameServer的啓動
線程
在指定機器1上指定GameServer: java -jar GameServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6080
在指定機器2上指定GameServer: java -jar GameServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6080
netty
...遊戲
2.SystemServer的啓動進程
在指定機器3上指定SystemServer: java -jar SystemServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6081
在指定機器4上指定SystemServer: java -jar SystemServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6081
...
3.GateServer的啓動
在指定機器5上指定SystemServer: java -jar SystemServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6083
在指定機器6上指定SystemServer: java -jar SystemServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6083
...
4.啓動WebServer
在指定機器7上指定WebServer: java -jar WebServer.jar --port=6080 這樣就至關於啓動了x.x.x.x:6084
這壓力咱們的1~7服務器能夠是同一臺物理機器,也能夠是多臺物理機器。
客戶端首先是經過微信等登錄方式,經過WebServer獲取到須要鏈接到哪一個網關,而後多個網關承載連接。
而後SystemServer和GameServer都是多個,經過記錄uid和sid等,這樣結合RPC通信,就完成了分佈式邏輯