我不明白的是 一个gateway 能否 分发不同的消息给多个 businessworker
还是 一个gateway 只能对应一个 businessworker
比如我有一个 管理 聊天 businessworker 我设置好$worker->eventHandler = 'Apps\Chat\Events';
吧消息转发到这个进程上 同时我有一个 管理仓库的 businesswoker 我设置好$worker->eventHandler = 'Apps\Chat\Events';
这样 gateway服务怎么区分应该转发到哪个进程上呢 ?
前谢谢前辈们 大哥们指导 php是世界上最好的语言
1. 一个gateway进程在转发消息时,默认是从多个businessworker进程中随机的路由一个出来,并交由该进程来处理转发过来的消息。
2. 换句话,单从businessworker进程的角度是无法区分业务的, 不过我们可以开启比如开多个不同的gateway服务配合使用。
谢谢大哥详细解释 我以前接触的一个框架 网关只有一个 转发多个子服务的方式 这样的话 我用workerman 改造一下吧 我觉得 gateway多了还要用nginx 代理 比较麻烦 。。。
Gateway有路由的功能,应该可以实现将特定请求发给特定服务器的特定进程。
多台gateway服务器不一定要用nginx代理,我都是用域名指定多个A记录来负载均衡的,超级简单方便。
嗯嗯 我自己尝试下吧 谢谢大哥提供思路
可以重写默认的 $gateway->router 属性,这样可以实现将特定请求转发给特定businessworker服务器的特定进程。