基于RocketMQ实现分布式WebSocket通信

本文介绍了如何利用RocketMQ实现分布式WebSocket通信。通过在WebSocket服务端部署多节点并订阅消息队列,确保消息能正确地跨服务器传递。详细步骤包括:添加RocketMQ依赖,配置 RocketMQ,修改MessageHandler类以序列化MessageID,以及实现消息监听和发送。通过这种方式,可以在不同WebSocket服务器实例间实现消息的可靠传输。
摘要由CSDN通过智能技术生成

目录

分布式的WebSocket方案

实现分布式消息发送

导入RocketMQ相关依赖

添加RocketMQ配置

修改MessageHandler类

序列化MessageID

执行启动类

实现分布式消息接收

修改MessageHandler类

启动测试,发送消息


 

分布式的WebSocket方案

 

分布式的WebSocket布置了多态socket服务端,并且所有服务端都订阅了消息队列。假如A想把消息发送给B,A的SessionID在第一个socket服务器中,B的sessionIP在第二个服务器中。正确的通信流程是:socket客户端中A把消息发送到Session为A的socket服务端,socket服务端再把消息发送给消息系统,因为我们的三个socket服务端都订阅了消息系统,所以3个服务端都能收到A->B的这条消息,每个socket服务端都去找自己有没有存B的sessionID,由存有B的sessionID的那台服务器做处理。

 

 

实现分布式消息发送

 

导入RocketMQ相关依赖

下面我们就开始整合分布式websocket项目,先添加依赖,starter2.0.0添加不了的可以参考下面的博客

https://blog.csdn.net/Delicious_Life/article/details/105300816

<!--RocketMQ相关依赖-->
<dependency>
  <groupId>org.apache.rocketmq</groupId>
  <artifactId>rocketmq-spring-boot-starter</artifactId>
  <version>2.0.0</version>
</dependency>
<dependency>
  <groupId>org.apache.rocketmq</groupId>
  <artifactId>rocketmq-client</artifactId>
  <version>4.3.2</version>
</dependency>

 

添加RocketMQ配置

我们需要手动指定nameserver和分组

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值