分布式服务器转发消息,rabbitmq+websocket(SpringBoot版)实现分布式消息推送

本来想用websocket做一个消息推送 可是分布式环境下不支持session共享因为服务器不同

所以采用 rabbitMQ+webSocket实现分布式消息推送

生产者将消息 发送给 rabbitMQ 的 virtual-host:/(顶极路由) 再由它路由到交换机 最终由交换机通过路由键指定具体的管道

消费者监听指定的管道获取消息

最终将获取的消息 交给 webSocket 被@OnMessage注解标识的方法

每次消费一条消息交给 被@OnMessage注解标识的方法 返回给前台

实现分布式实时推送

1.配置rabbitMQ

消息生产者

1.1pom.xml

1

2

3 org.springframework.boot

4 spring-boot-starter-amqp

5

1 server:2 port: 50023

4 spring:5 rabbitmq:6 host: localhost7 #账号密码 默认有的8 username: guest9 password: guest10 #rbbitmq虚拟主机路径11 virtual-host: /12 #rabbitmq的端口号 也是默认的13 port: 5672

1 @SpringBootApplication2 @MapperScan(basePackages = "com.supplychain.dao")3 @EnableRabbit/**开启rabbitmq*/

4 public classThumbsupServer5002_App {5

6 public static voidmain(String[]args){7

8 SpringApplication.run(ThumbsupServer5002_App.class,args);9

10 }11

12 /**消息的转换器13 * 设置成json 并放入到Spring中14 **/

15 @Bean16 publicMessageConverter messageConverter(){17

18 return newJackson2JsonMessageConverter();19

20 }21 }

测试发送消息

1 @RunWith(SpringRunner.class)2 @SpringBootTest3 public classThumbsupServer5002_AppTest {4

5

6 @Autowired7 privateRabbitTemplate rabbitTemplate;8

9 @Tes

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值