在网站上看到这个, 想起了gateway worker在分布式时候的性能问题
(http:// www.cnblogs.com/ myd620/ p/ 6081100.html)
请问下, 当两个client属于不同的gateway的时候, 他们之前信息的路由是如何实现的? 是通过数组查表的方式么? 譬如business worker给某个client发送一条数据的时候, Gateway worker内部是根据什么转去具体的gateway的?
因为我的用户组不允许发送网站外链接, 我把每段都加了回车 实在不好意思
GatewayWorker根据client_id去发送数据,client_id里面包含了客户端所属服务器内网通讯地址(ip和端口)以及进程内socket编号信息,每个gateway进程都有自己的通讯ip和端口,发送数据时将client_id转换成内网ip:端口,向这个 ip:端口 发送数据以及socket编号就可以给对应客户端了发送信息了。
谢谢 walkor大神, 这样处理效率确实会高很多。 请问下client_id的哪些域包含了服务器的ip/port/socket?谢谢
$client_id = bin2hex(pack('NnN', $local_ip, $local_port, $connection_id)) 这个是client_id规则
学习了
因为我的用户组不允许发送网站外链接, 我把每段都加了回车
实在不好意思
GatewayWorker根据client_id去发送数据,client_id里面包含了客户端所属服务器内网通讯地址(ip和端口)以及进程内socket编号信息,每个gateway进程都有自己的通讯ip和端口,发送数据时将client_id转换成内网ip:端口,向这个 ip:端口 发送数据以及socket编号就可以给对应客户端了发送信息了。
谢谢 walkor大神, 这样处理效率确实会高很多。 请问下client_id的哪些域包含了服务器的ip/port/socket?谢谢
$client_id = bin2hex(pack('NnN', $local_ip, $local_port, $connection_id))
这个是client_id规则
学习了