聊天系统服务端

2018-04-19 19:06:04 +08:00
 thomaswang

一个聊天室里面很多人,nginx 负载均衡到三台服务器,如果 server1 上一个人说了一句话,我如何通知 server2,server3,把这句话发送给连接在他们上面的用户

1522 次点击
所在节点    问与答
8 条回复
hand515
2018-04-19 19:09:14 +08:00
简单:redis pub/sub
current
2018-04-19 19:30:43 +08:00
消息同步是很典型的 im 实践吧。。
chinvo
2018-04-19 19:34:08 +08:00
后端服务器共用内存数据库或者消息队列
chinvo
2018-04-19 19:34:38 +08:00
比如 RabbitMQ 之类的 MQTT,用 Fanout 模式
earther01
2018-04-19 20:08:51 +08:00
@chinvo RabbitMQ fanout 模式支持消费者发消息吗?
chinvo
2018-04-19 20:28:39 +08:00
@earther01 理论上各主机都得同时开 publish 和 subscribe
Lax
2018-04-19 22:17:20 +08:00
需要一个表记录 user-server 对应关系,用于查询。用户登录时写入,用户退出时删除
feverzsj
2018-04-19 22:21:18 +08:00
你这一个聊天室能有几千万人吗?一台服务器还搞不定?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/448225

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX