我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Springboot中RocketMQ怎么实现广播消息

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Springboot中RocketMQ怎么实现广播消息

这篇文章主要介绍“Springboot中RocketMQ怎么实现广播消息”,在日常操作中,相信很多人在Springboot中RocketMQ怎么实现广播消息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Springboot中RocketMQ怎么实现广播消息”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

RocketMQ消息模式主要有两种:广播模式、集群模式(负载均衡模式)

广播模式是每个消费者,都会消费消息;

负载均衡模式是每一个消费只会被某一个消费者消费一次;

我们业务上一般用的是负载均衡模式,当然一些特殊场景需要用到广播模式,比如发送一个信息到邮箱,手机,站内提示;

我们可以通过@RocketMQMessageListenermessageModel属性值来设置,MessageModel.BROADCASTING是广播模式,MessageModel.CLUSTERING是默认集群负载均衡模式

下面来介绍下 springboot+rockermq 整合实现 广播消息

  • 创建Springboot项目,添加rockermq 依赖

<!--rocketMq依赖--><dependency>    <groupId>org.apache.rocketmq</groupId>    <artifactId>rocketmq-spring-boot-starter</artifactId>    <version>2.2.1</version></dependency>
  • 配置rocketmq

# 端口
server:
  port: 8083

# 配置 rocketmq
rocketmq:
  name-server: 127.0.0.1:9876
  #生产者
  producer:
    #生产者组名,规定在一个应用里面必须唯一
    group: group1
    #消息发送的超时时间 默认3000ms
    send-message-timeout: 3000
    #消息达到4096字节的时候,消息就会被压缩。默认 4096
    compress-message-body-threshold: 4096
    #最大的消息限制,默认为128K
    max-message-size: 4194304
    #同步消息发送失败重试次数
    retry-times-when-send-failed: 3
    #在内部发送失败时是否重试其他代理,这个参数在有多个broker时才生效
    retry-next-server: true
    #异步消息发送失败重试的次数
    retry-times-when-send-async-failed: 3

  • 生产端:新建一个 controller 来做消息发送

生产端按正常发送逻辑发送消息即可

package com.example.springbootrocketdemo.controller;import org.apache.rocketmq.spring.core.RocketMQTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class RocketMQBroadCOntroller {    @Autowired    private RocketMQTemplate rocketMQTemplate;        @RequestMapping("/testBroadSend")    public void testSyncSend(){        //参数一:topic   如果想添加tag,可以使用"topic:tag"的写法        //参数二:消息内容        for(int i=0;i<10;i++){            rocketMQTemplate.convertAndSend("test-topic-broad","test-message"+i);        }    }}
  • 创建两个消费者来消费消息

我们先集群负载均衡测试,加上messageModel=MessageModel.CLUSTERING

消费者1:

package com.example.springbootrocketdemo.config;import org.apache.rocketmq.spring.annotation.MessageModel;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;import org.apache.rocketmq.spring.core.RocketMQListener;import org.springframework.stereotype.Service;@Service@RocketMQMessageListener(consumerGroup = "test-broad",topic = "test-topic-broad",messageModel = MessageModel.CLUSTERING)public class RocketMQBroadConsumerListener implements RocketMQListener<String> {    @Override    public void onMessage(String s) {        System.out.println("集群模式 消费者1,消费消息:"+s);    }}

消费者2: 与消费者1在 同一个consumerGroup 和 topic

package com.example.springbootrocketdemo.config;import org.apache.rocketmq.spring.annotation.MessageModel;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;import org.apache.rocketmq.spring.core.RocketMQListener;import org.springframework.stereotype.Service;@Service@RocketMQMessageListener(consumerGroup = "test-broad",topic = "test-topic-broad",messageModel = MessageModel.CLUSTERING)public class RocketMQBroadConsumerListener2 implements RocketMQListener<String> {    @Override    public void onMessage(String s) {        System.out.println("集群模式 消费者2,消费消息:"+s);    }}
  • 启动服务,测试 集群模式消费

集群模式测试: 两个消费者平摊 消息

Springboot中RocketMQ怎么实现广播消息

  • 把上面两个消费者的 messageModel 属性值修改成 广播模式

消费者1:

package com.example.springbootrocketdemo.config;import org.apache.rocketmq.spring.annotation.MessageModel;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;import org.apache.rocketmq.spring.core.RocketMQListener;import org.springframework.stereotype.Service;@Service@RocketMQMessageListener(consumerGroup = "test-broad",topic = "test-topic-broad",messageModel = MessageModel.BROADCASTING)public class RocketMQBroadConsumerListener implements RocketMQListener<String> {    @Override    public void onMessage(String s) {        System.out.println("广播消息1 广播模式,消费消息:"+s);    }}

消费者2: 与消费者1在 同一个consumerGroup 和 topic

package com.example.springbootrocketdemo.config;import org.apache.rocketmq.spring.annotation.MessageModel;import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;import org.apache.rocketmq.spring.core.RocketMQListener;import org.springframework.stereotype.Service;@Service@RocketMQMessageListener(consumerGroup = "test-broad",topic = "test-topic-broad",messageModel = MessageModel.BROADCASTING)public class RocketMQBroadConsumerListener2 implements RocketMQListener<String> {    @Override    public void onMessage(String s) {        System.out.println("广播消息2 广播模式,消费消息:"+s);    }}
  • 重启服务,测试 广播模式消费

Springboot中RocketMQ怎么实现广播消息

到此,关于“Springboot中RocketMQ怎么实现广播消息”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Springboot中RocketMQ怎么实现广播消息

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Springboot中RocketMQ怎么实现广播消息

这篇文章主要介绍“Springboot中RocketMQ怎么实现广播消息”,在日常操作中,相信很多人在Springboot中RocketMQ怎么实现广播消息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spr
2023-07-02

rocketmq广播消息积压怎么解决

RocketMQ广播消息积压的解决方法如下:增加消费者数量:通过增加消费者的数量,可以提升消息的处理速度,减少消息的积压情况。提升消费者处理消息的速度:可以通过优化消费者的处理逻辑和算法,提升消费者处理消息的效率。提高消息发送的速度:可
2023-10-21

Springboot中RocketMQ怎么实现消息发送与接收

本文小编为大家详细介绍“Springboot中RocketMQ怎么实现消息发送与接收”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot中RocketMQ怎么实现消息发送与接收”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢
2023-07-02

linux怎么发送广播消息

在Linux系统中,可以使用`wall`命令来发送广播消息。`wall`命令用于向所有登录到系统的用户发送消息,格式如下:```wall [文件名]```其中,`文件名`是包含要发送的消息的文件名。如果省略文件名,则`wall`命令会从标准
2023-09-04

在android怎么发送广播消息

在Android中,可以通过以下步骤来发送广播消息:1. 创建一个`Intent`对象,用于描述广播消息的内容和目标。```javaIntent intent = new Intent("com.example.MY_CUSTOM_ACTI
2023-09-04

Android怎么使用广播发送消息

本文小编为大家详细介绍“Android怎么使用广播发送消息”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么使用广播发送消息”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体效果如下1.activ
2023-06-30

怎么在Android中利用Intent发送广播消息

这篇文章给大家介绍怎么在Android中利用Intent发送广播消息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android Intent发送广播消息Intent的另一种用途是发送广播消息,应用程序和Android
2023-05-31

怎么在springboot中用redis实现消息队列

本篇内容主要讲解“怎么在springboot中用redis实现消息队列”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在springboot中用redis实现消息队列”吧!准备阶段安装redi
2023-06-19

SpringBoot中怎么使用WebSocket实现点对点消息

本篇内容介绍了“SpringBoot中怎么使用WebSocket实现点对点消息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、添加依赖,配
2023-06-08

springboot怎么集成websocket实现消息推送

要在Spring Boot中集成WebSocket实现消息推送,可以按照以下步骤进行操作:添加依赖:在`pom.xml`文件中添加以下依赖:org.springframework.bootspring-boot-starter-websoc
2023-10-26

SpringBoot怎么使用WebSocket实现群发消息

这篇文章主要介绍了SpringBoot怎么使用WebSocket实现群发消息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么使用WebSocket实现群发消息文章都会有所收获,下面我们一起
2023-06-08

怎么用SpringBoot+RabbitMQ实现消息可靠传输

这篇文章主要介绍了怎么用SpringBoot+RabbitMQ实现消息可靠传输的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么用SpringBoot+RabbitMQ实现消息可靠传输文章都会有所收获,下面我们
2023-06-30

RocketMQ Broker实现高可用高并发的消息中转服务

RocketMQ消息代理(Broker)是一种高可用、高并发的消息中转服务,能够接收并存储生产者发送的消息,并将消息发送给消费者。它具有多种消息存储模式和消息传递模式,支持水平扩展和故障转移等特性,可以为分布式应用提供可靠的消息传递服务
2023-05-17

C#多路广播怎么实现

这篇文章主要讲解了“C#多路广播怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#多路广播怎么实现”吧!一个代理同时代理几个方法。就是我们前面说到的那样,你去建造房子,现在要不仅仅是
2023-06-17

CSS3中transition如何实现通知消息轮播条

这篇文章主要介绍CSS3中transition如何实现通知消息轮播条,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Vue 版本,拷贝到文件即可使用