相关文章推荐
小眼睛的鼠标垫  ·  命名空间设备地址标识dev_addr_gen ...·  1 年前    · 
重感情的大象  ·  排序规则和 Unicode 支持 - ...·  2 年前    · 
谦逊的红豆  ·  div中table的宽度超过div的宽度问题 ...·  2 年前    · 
逆袭的墨镜  ·  excel中生成32位随机id_51CTO博 ...·  2 年前    · 
Code  ›  一个注解实现 WebSocket 集群方案,这样玩才爽!开发者社区
集群技术 websocket
https://cloud.tencent.com/developer/article/2277253
闷骚的黑框眼镜
1 年前
码猿技术专栏

一个注解实现 WebSocket 集群方案,这样玩才爽!

腾讯云
开发者社区
文档 建议反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
码猿技术专栏
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 一个注解实现 WebSocket 集群方案,这样玩才爽!

一个注解实现 WebSocket 集群方案,这样玩才爽!

作者头像
码猿技术专栏
发布 于 2023-05-01 15:23:24
247 0
发布 于 2023-05-01 15:23:24
举报
文章被收录于专栏: 码农那些事!!! 码农那些事!!!

WebSocket 大家应该是再熟悉不过了,如果是单体应用确实不会有什么问题,但是当我们的项目使用微服务架构时,就可能会存在问题

比如 服务A 有两个实例 A1 和 A2 ,前端的 WebSocket 客户端 C 通过网关的负载均衡连到了 A1 ,这个时候当 A2 触发消息发送的逻辑,需要将某个消息发送给所有的客户端时, C 就接受不到消息

这个时候我们很快就能想到一种最简单的解决方案,就是把 A2 的消息转发给 A1 , A1 再把消息发送给 C ,这样 C 就能收到 A2 发送的消息了

用法

接下来让我们看看这个库的用法

首先我们需要在启动类上添加一个注解 @EnableWebSocketLoadBalanceConcept

@EnableWebSocketLoadBalanceConcept
@EnableDiscoveryClient
@SpringBootApplication
public class AServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(AServiceApplication.class, args);

接着我们在需要发送消息的地方注入 WebSocketLoadBalanceConcept 就可以愉快的跨实例发消息啦

@RestController
@RequestMapping("/ws")
public class WsController {
    @Autowired
    private WebSocketLoadBalanceConcept concept;
    @RequestMapping("/send")
    public void send(@RequestParam String msg) {
        concept.send(msg);
 
推荐文章
小眼睛的鼠标垫  ·  命名空间设备地址标识dev_addr_genid_devaddr-CSDN博客
1 年前
重感情的大象  ·  排序规则和 Unicode 支持 - SQL Server | Microsoft Learn
2 年前
谦逊的红豆  ·  div中table的宽度超过div的宽度问题_element 组件超出div大小_坚持奋斗的李洛克的博客-CSDN博客
2 年前
逆袭的墨镜  ·  excel中生成32位随机id_51CTO博客_excel随机生成2位小数
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号