GatewayWorker基於Workerman開發的專案框架,用於快速開發TCP長連線應用,例如app推送服務端、即時IM服務端、遊戲服務端、物聯網、智慧家庭等等
#Workerman可以看做是一個純粹的socket類別庫,可以開發幾乎所有的網路應用,不管是TCP的還是UDP的,長連接的還是短連接的。 Workerman程式碼精簡,功能強大,使用靈活,能夠快速開發出各種網路應用。 (建議學習: workerman教學)
同時Workerman比較底層,需要開發者有一定程度的多層程式設計經驗。
提示
GatewayWorker提供的所有介面都是支援分散式呼叫的,所以業務程式碼不需要任何更改,直接就可以分散部署。
如何分散式GatewayWorker
GatewayWorker透過Register服務來建立分割叢集。同一叢集使用相同的Register服務ip和連接埠,即Gateway 和 businessWorker的註冊服務位址($gateway->registerAddress $businessworker->registerAddress)指向同一台Register服務。
分散式部署的關鍵步驟
1、一個叢集只需要一台伺服器作為Register服務,用於在進程啟動時協調Gateway與BusinessWorker之間的建立連接通訊,其它伺服器可以刪掉start_register.php檔案或註解掉裡面的程式碼。
(Register服務本身通訊量極低,一般僅在程序啟動時通訊,所以Register服務本身不會成為瓶頸,運行過程中即使Register服務伺服器暫時掛掉,也不會對外網服務造成影響,所以Register服務通常不需要做高可用)
2、將Gateway 和businessWorker的註冊服務地址(registerAddress)設定成統一的Register服務地址,也就是步驟1選擇的Register服務所在伺服器的ip和連接埠。
3、設定Gateway啟動腳本(一般是start_gateway.php)中的lanIp與目前伺服器內網ip一致
以上是workerman的集群怎麼開發的詳細內容。更多資訊請關注PHP中文網其他相關文章!