首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
关于swoole的websocket扩展作为消息通信服务模块的几个问题
将swoole的websocket作为一个长连接服务,那么有以下几个问题: 1、心跳的策略是怎么实现的?能否给个实现例子,谢谢。 2、能否做服务集群,因为有可能服务会挂掉,那么可以自动切换到另外一个服务上去。类似做nginx的负载均衡,如何实现? 3、针对这块如何做个压力测试,即使官网提到的支持10W、100W的连接,而且维持一个长连接的开销非常小,但是如果连接中有非常多的消息通信那内存可能就会扛不住了,需要做个压力测试。 谢谢了。
发布于9年前 · 1 次浏览 · 来自
提问
o
osindex
将swoole的websocket作为一个长连接服务,那么有以下几个问题: 1、心跳的策略是怎么实现的?能否给个实现例子,谢谢。 2、能否做服务集群,因为有可能服务会挂掉,那么可以自动切换到另外一个服务上去。类似做nginx的负载均衡,如何实现? 3、针对这块如何做个压力测试,即使官网提到的支持10W、100W的连接,而且维持一个长连接的开销非常小,但是如果连接中有非常多的消息通信那内存可能就会扛不住了,需要做个压力测试。 谢谢了。
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2017-05-19
沫
沫
1. swoole底层提供了`heartbeat_idle_time` 的选项,可以主动切断在一定时间内未向服务器发送数据包的连接。客户端只需要设置一个定时器,每隔N秒向服务器发心跳包即可。 2. 集群方案是架构设计层面的的事情,而swoole只是一个底层通信的扩展,你需要自己解决。如果简单一点,可以利用`ZooKeeper`之类的方案。你的WebSocket服务器连接到`ZooKeeper`然后实现集群的存货检测。客户端可以请求一个Http接口拿到Server列表,然后按照一定的规则HASH选择一个IP
赞
0
回复
2017-05-19
新
新用户(手机注册)
谢谢rango的耐心回答,针对第二点利用zookeeper的方案,这个有没有案例? 或者demo例子可以看下,多谢!zookeeper我这边了解一些是做服务集群的,与webso通信貌似不是一个意思呢意思呢?
赞
0
回复
2017-05-19
c
chalesi
`zookeeper` 你可以理解为就是一个Redis,支持GET/SET操作,当你的WebSocket服务器节点连接到`zookeeper`时,就认为是可用的,当连接断掉时,认为节点已下线。 客户端可以去读这个列表。得到当前在线的WebSocket服务器节点。
赞
0
回复