stomp+websocket 集群问题_「多人聊天室」WebSocket集群/分布式改造

本文介绍了如何将基于stomp+websocket的聊天室改造为分布式集群,包括为何需要集群改造、如何改造,以及利用Redis的订阅/发布功能实现用户在集群中发送和接收消息。同时,文章还介绍了STOMP协议的基本概念,并展示了具体的功能实现,如全体用户消息发送和用户上下线通知。
摘要由CSDN通过智能技术生成
文章来源:https://dwz.cn/jPGInM6l作者:蛮三刀把刀

书接上文,我们开始对我们的小小聊天室进行集群化改造。

本文内容摘要:

  • 为何要改造为分布式集群
  • 如何改造为分布式集群
  • 用户在聊天室集群如何发消息
  • 用户在聊天室集群如何接收消息
  • 补充知识点:STOMP 简介
  • 功能一:向聊天室集群中的全体用户发消息——Redis的订阅/发布
  • 功能二:集群集群用户上下线通知——Redis订阅发布
  • 功能三:集群用户信息维护——Redis集合
  • WebSocket集群还有哪些可能性

本文源码:(妈妈再也不用担心我无法复现文章代码啦)

https://github.com/qqxx6661/springboot-websocket-demo/releases/tag/%E9%9B%86%E7%BE%A4%E7%89%88

正文

WebSocket集群/分布式改造:实现多人在线聊天室

为何要改造为分布式集群

分布式就是为了解决单点故障问题,想象一下,如果一个服务器承载了1000个大佬同时聊天,服务器突然挂了,1000个大佬瞬间全部掉线,大概明天你就被大佬们吊起来打了。当聊天室改为集群后,就算服务器A挂了,服务器B上聊天的大佬们还可以愉快的聊天,并且在前端还能通过代码,让连接A的大佬们快速重连至存活的服务器B,继续和大家愉快的聊天,岂不美哉!

总结一下:实现了分布式WebSocket后,我们可以将流量负载均衡到不同的服务器上并提供一种通信机制让各个服务器能进行消息同步(不然用户A连上服务器A,用户B脸上服务器B,它们发消息的时候对方都没法收到)。

如何改造为分布式集群

当我们要实现分布式的时候,我们则需要在各个机器上共享这些信息,所以我们需要一个Publish/Subscribe的中间件。我们现在使用Redis作为我们的解决方案。

1. 用户在聊天室集群如何发消息

假设我们的聊天室集群有服务器A和B,用户Alice连接在A上,Bob连接在B上、

Alice向聊天室的服务器A发送消息,A服务器必须要将收到的消息转发到Redis,才能保证聊天室集群的所有服务器(也就是A和B)能够拿到消息。否则,只有Alice在的服务器A能够读到消息,用户Bob在的服务器B并不能收到消息,A和B也就无法聊天了。

2. 用户在聊天室集群如何接收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值