[Spring] WebSocket 怎么做到集群?

346 天前
 nnegier
3690 次点击
所在节点    Java
31 条回复
pengtdyd
346 天前
那当然是单独的服务啦,无状态和有状态架构上个人认为不能混用(纯个人理解)。
kuituosi
346 天前
要看具体实现的功能,即使是 websocket 也可以当作临时接入点,所以连接到任意一台就可以
如果是需要持续状态,比如有游戏服务器,就需要保持 session
这种可以采用客户端路由,也可以采用网关 session 路由
imokkkk
346 天前
Redis 发布订阅
imokkkk
346 天前
gitrebase
346 天前
如果要做服务端推送的话,可以考虑使用 Server-Sent Events ,这是种不用维护 WebSocket 的方案,我前几天刚好写了 demo 来用 SSE + NATS 来做轻量级的聊天室服务( NATS 就是用来做集群间的即时 pubsub 的,用 Redis 的 pubsub 应该也行) https://zhuanlan.zhihu.com/p/676561818
salmon5
346 天前
会话保持,植入 cookie 。
AWS/阿里云 ALB 都支持。
salmon5
346 天前
AWS 叫 Sticky sessions(粘性会话) Stickiness
l0wkey
346 天前
换 MQTT 吧
salmon5
346 天前
https://socket.io/docs/v4/using-multiple-nodes/#nginx-configuration
nginx 社区版不支持基于植入 cookie 的,商业版支持
社区版支持基于源 IP 的,缺点是可能会负载不均匀
ZeroDu
346 天前
上面说的 mq 发广播这个就是最佳方案了;
或者 redis 保存一份 client 跟 server 的对应关系,后续就可以操作了
F7TsdQL45E0jmoiG
345 天前
本质是会话保持,另外现在还有什么场景非要用 websocket 的集群

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

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

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

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

© 2021 V2EX