businessWorker进程与Gateway的关系

华山丶

我不明白的是 一个gateway 能否 分发不同的消息给多个 businessworker 
还是 一个gateway 只能对应一个 businessworker 
比如我有一个 管理 聊天 businessworker 我设置好$worker->eventHandler = 'Apps\Chat\Events';
吧消息转发到这个进程上    同时我有一个 管理仓库的 businesswoker 我设置好$worker->eventHandler = 'Apps\Chat\Events'; 
这样 gateway服务怎么区分应该转发到哪个进程上呢 ?
 
前谢谢前辈们 大哥们指导 php是世界上最好的语言

4408 4 0
4个回答

blogdaren

1.  一个gateway进程在转发消息时,默认是从多个businessworker进程中随机的路由一个出来,并交由该进程来处理转发过来的消息。
2.  换句话,单从businessworker进程的角度是无法区分业务的, 不过我们可以开启比如开多个不同的gateway服务配合使用。

  • 暂无评论
华山丶

谢谢大哥详细解释 我以前接触的一个框架 网关只有一个 转发多个子服务的方式  这样的话 我用workerman 改造一下吧 我觉得 gateway多了还要用nginx 代理 比较麻烦 。。。

  • 暂无评论
six

Gateway有路由的功能,应该可以实现将特定请求发给特定服务器的特定进程。
多台gateway服务器不一定要用nginx代理,我都是用域名指定多个A记录来负载均衡的,超级简单方便。

  • 暂无评论
华山丶

嗯嗯 我自己尝试下吧 谢谢大哥提供思路

  • blogdaren 2019-01-23

    可以重写默认的 $gateway->router 属性,这样可以实现将特定请求转发给特定businessworker服务器的特定进程。

年代过于久远,无法发表回答
🔝