请选择 进入手机版 | 继续访问电脑版

默认
发表评论 11
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求教RainbowChat-Web的nodejs服务端能否使用PM2的集群模式
RainbowChatServer_Web用pm2管理,可以在出现异常的时候自动重启

看到PM2有均衡负载(集群模式),对于RainbowChatServer_Web不能用吧??

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

pm2.png
推荐方案
评论 11
理论上,IM的长连接集群跟im的架构业务有关,所以不能跟http这种短生命周期的东西一样方便地用这些通用集群方案的。

不过,你如果有时间可以研究一下,我因为没有用过PM2的这个集群,所以也不能很肯定地否定它。

引用:JackJiang 发表于 2019-04-11 18:17
理论上,IM的长连接集群跟im的架构业务有关,所以不能跟http这种短生命周期的东西一样方便地用这些通用集群 ...

好的,

你是怎么对 node+websocket 进行负载均衡的 ?
引用:IM、你好 发表于 2019-04-12 10:11
你是怎么对 node+websocket 进行负载均衡的 ?

可以基于nginx来做websocket集群,这个你抽时间也可以去研究一下
引用:JackJiang 发表于 2019-04-12 10:24
可以基于nginx来做websocket集群,这个你抽时间也可以去研究一下

不知道我的理解对不对??
例如: RainbowChat-Web我启动五个,端口分别为3000、3001、3002、3003、3004;
            以3000作为IM服务器,3001、3002、3003、3004的IM服务器全部连3000;
            再通过nginx分发到3001、3002、3003、3004;
一个IM服务器,四个IM客户端,这样IM服务器的压力大吗???
引用:IM、你好 发表于 2019-04-12 16:15
不知道我的理解对不对??
例如: RainbowChat-Web我启动五个,端口分别为3000、3001、3002、3003、3004 ...

what?你这5个不都是服务器吗?哪来的客户端。。。  你这逻辑真是混乱
引用:JackJiang 发表于 2019-04-12 19:33
what?你这5个不都是服务器吗?哪来的客户端。。。  你这逻辑真是混乱

其他端口连接的都是3000的IM服务器,3001、3002、3003、3004服务器虽然起着但是没用自身的IM服务器,用的都是3000端口的IM服务器;

不然的话,比如用户A分发到3001、B分发到3002、C分发到3003、D分发到3004
A、B、C、D之间都没法正常通信
引用:IM、你好 发表于 2019-04-13 21:18
其他端口连接的都是3000的IM服务器,3001、3002、3003、3004服务器虽然起着但是没用自身的IM服务器,用的 ...

你启动另外4个服务端的作用是什么?
引用:JackJiang 发表于 2019-04-14 16:19
你启动另外4个服务端的作用是什么?

没用,所以说不知道这样想法对不对

node集成websocket做均衡负载这方面网上资料也少,也不详细,所以问问你是怎么做的?
引用:IM、你好 发表于 2019-04-15 09:01
没用,所以说不知道这样想法对不对

node集成websocket做均衡负载这方面网上资料也少,也不详细,所以 ...

用Nginx是可以实现websocket的高可用集群的,但不能直接依赖它实现全功能的高并发集群,原因是nginx在这里的角色,最多算是长连接集群的前置SLB服务器而已。具体你可以自已研究一下相关的资料。我自已的商业项目目前还没有那么巨大的用户量,所以暂时对高并发集群没有需求。如果要实现websocket的高并发集群的话,那肯定是要自已来实现集群实例的横向通信问题了,解决了这个就ok了
引用:JackJiang 发表于 2019-04-15 10:26
用Nginx是可以实现websocket的高可用集群的,但不能直接依赖它实现全功能的高并发集群,原因是nginx在这 ...

好的,一般用户量不大情况下不需要考虑高并发的,只需要考虑异常重启,保证进程不断就行了。

横向通信还是再慢慢看吧

谢谢
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部