请问下, gateway worker信息路由是如何实现的

timfeng
在网站上看到这个, 想起了gateway worker在分布式时候的性能问题

(http://
www.cnblogs.com/
myd620/
p/
6081100.html)

请问下, 当两个client属于不同的gateway的时候, 他们之前信息的路由是如何实现的? 是通过数组查表的方式么? 譬如business worker给某个client发送一条数据的时候, Gateway worker内部是根据什么转去具体的gateway的?

5136 5 0
5个回答

timfeng

因为我的用户组不允许发送网站外链接, 我把每段都加了回车
实在不好意思

  • 暂无评论
walkor

GatewayWorker根据client_id去发送数据,client_id里面包含了客户端所属服务器内网通讯地址(ip和端口)以及进程内socket编号信息,每个gateway进程都有自己的通讯ip和端口,发送数据时将client_id转换成内网ip:端口,向这个 ip:端口 发送数据以及socket编号就可以给对应客户端了发送信息了。

  • 暂无评论
timfeng

谢谢 walkor大神, 这样处理效率确实会高很多。 请问下client_id的哪些域包含了服务器的ip/port/socket?谢谢

  • 暂无评论
walkor

$client_id = bin2hex(pack('NnN', $local_ip, $local_port, $connection_id))
这个是client_id规则

  • 暂无评论
damao

学习了

  • 暂无评论
年代过于久远,无法发表回答
🔝