关于GatewayWorker中BusinessWorker关闭一个服务不影响服务质量

 


默认规则是Gateway随机选择一个BusinessWorker进程,然后把当前client_id与这个BusinessWorker进程绑定,以后这个client_id的所有数据(onConnect/onMessage/onClose事件)都交给这个绑定的BusinessWorker进程处理。


 


只需要停止BusinessWorker的服务,运行

php start.php stop
,然后下线即可。Gateway服务器会自动感知有BusinessWorker服务器下线,不会再将请求转发给下线的机器,整个下线过程中不影响服务质量。


截取的是gatewayWorker文档中的两处,是不是可以这样理解:
当BusinessWorker下线之后Regisiter得到消息告知所有的gateway有一个BusinessWorker下线,连接到的使用其他的BusinessWorker。
如果是不是这样,如何是实现不影响服务质量。
如果是这样,下线的部分BusinessWorker工作已什么规则交给其他BusinessWorker呢?
已邀请:

walkor

赞同来自:

businessWorker下线后register会通知所有gateway进程,将它踢出。新的请求进来后就不会再将请求分发给下线的businessWorker

cxcsz

赞同来自:

谢谢,能问下,新的请求默认以什么规则分发给其他在线的BusinessWorker

要回复问题请先登录注册