我不明白的是 一個gateway 能否 分發(fā)不同的消息給多個 businessworker?
還是 一個gateway 只能對應(yīng)一個 businessworker?
比如我有一個 管理 聊天 businessworker 我設(shè)置好$worker->eventHandler = 'Apps\Chat\Events';
吧消息轉(zhuǎn)發(fā)到這個進程上 ? ?同時我有一個 管理倉庫的 businesswoker?我設(shè)置好$worker->eventHandler?=?'Apps\Chat\Events';?
這樣 gateway服務(wù)怎么區(qū)分應(yīng)該轉(zhuǎn)發(fā)到哪個進程上呢 ?
?
前謝謝前輩們 大哥們指導 php是世界上最好的語言
1.? 一個gateway進程在轉(zhuǎn)發(fā)消息時,默認是從多個businessworker進程中隨機的路由一個出來,并交由該進程來處理轉(zhuǎn)發(fā)過來的消息。
2.? 換句話,單從businessworker進程的角度是無法區(qū)分業(yè)務(wù)的, 不過我們可以開啟比如開多個不同的gateway服務(wù)配合使用。
謝謝大哥詳細解釋 我以前接觸的一個框架 網(wǎng)關(guān)只有一個 轉(zhuǎn)發(fā)多個子服務(wù)的方式 ?這樣的話 我用workerman 改造一下吧 我覺得 gateway多了還要用nginx 代理 比較麻煩 。。。
Gateway有路由的功能,應(yīng)該可以實現(xiàn)將特定請求發(fā)給特定服務(wù)器的特定進程。
多臺gateway服務(wù)器不一定要用nginx代理,我都是用域名指定多個A記錄來負載均衡的,超級簡單方便。
嗯嗯 我自己嘗試下吧 謝謝大哥提供思路
可以重寫默認的 $gateway->router 屬性,這樣可以實現(xiàn)將特定請求轉(zhuǎn)發(fā)給特定businessworker服務(wù)器的特定進程。