iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Springboot中RocketMQ怎么实现广播消息
  • 316
分享到

Springboot中RocketMQ怎么实现广播消息

2023-07-02 11:07:15 316人浏览 薄情痞子
摘要

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

这篇文章主要介绍“SpringBootRocketMQ怎么实现广播消息”,在日常操作中,相信很多人在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怎么实现广播消息”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Springboot中RocketMQ怎么实现广播消息

本文链接: https://www.lsjlt.com/news/341710.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Springboot中RocketMQ怎么实现广播消息
    这篇文章主要介绍“Springboot中RocketMQ怎么实现广播消息”,在日常操作中,相信很多人在Springboot中RocketMQ怎么实现广播消息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spr...
    99+
    2023-07-02
  • Springboot详解RocketMQ实现广播消息流程
    RocketMQ消息模式主要有两种:广播模式、集群模式(负载均衡模式) 广播模式是每个消费者,都会消费消息; 负载均衡模式是每一个消费只会被某一个消费者消费一次; 我们业务上一般用的...
    99+
    2024-04-02
  • rocketmq广播消息积压怎么解决
    RocketMQ广播消息积压的解决方法如下: 增加消费者数量:通过增加消费者的数量,可以提升消息的处理速度,减少消息的积压情况。 ...
    99+
    2023-10-21
    rocketmq
  • SpringBoot怎么整合RocketMQ事务、广播以及顺序消息
    本篇内容介绍了“SpringBoot怎么整合RocketMQ事务、广播以及顺序消息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔...
    99+
    2024-04-02
  • Springboot中RocketMQ怎么实现消息发送与接收
    本文小编为大家详细介绍“Springboot中RocketMQ怎么实现消息发送与接收”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot中RocketMQ怎么实现消息发送与接收”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢...
    99+
    2023-07-02
  • linux怎么发送广播消息
    在Linux系统中,可以使用`wall`命令来发送广播消息。`wall`命令用于向所有登录到系统的用户发送消息,格式如下:```wa...
    99+
    2023-09-04
    linux
  • 在android怎么发送广播消息
    在Android中,可以通过以下步骤来发送广播消息:1. 创建一个`Intent`对象,用于描述广播消息的内容和目标。```java...
    99+
    2023-09-04
    android
  • Android怎么使用广播发送消息
    本文小编为大家详细介绍“Android怎么使用广播发送消息”,内容详细,步骤清晰,细节处理妥当,希望这篇“Android怎么使用广播发送消息”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。具体效果如下activit...
    99+
    2023-06-30
  • 怎么在Android中利用Intent发送广播消息
    这篇文章给大家介绍怎么在Android中利用Intent发送广播消息,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Android Intent发送广播消息Intent的另一种用途是发送广播消息,应用程序和Android...
    99+
    2023-05-31
    android intent roi
  • Springboot详解RocketMQ实现消息发送与接收流程
    springboot+rockermq 实现简单的消息发送与接收 普通消息的发送方式有3种:单向发送、同步发送和异步发送。 下面来介绍下 springboot+rockermq 整合...
    99+
    2024-04-02
  • Springboot详细讲解RocketMQ实现顺序消息的发送与消费流程
    目录一、创建Springboot项目添加rockermq依赖二、配置rocketmq三、新建一个controller来做消息发送四、创建消费端监听消息消费消息五、启动服务测试顺序消息...
    99+
    2024-04-02
  • RocketMQ消息过滤与查询的实现
    消息过滤 RocketMQ分布式消息队列的消息过滤方式有别于其它MQ中间件,是在Consumer端订阅消息时再做消息过滤的。 RocketMQ这么做是还是在于其Producer端写入...
    99+
    2024-04-02
  • 怎么在springboot中用redis实现消息队列
    本篇内容主要讲解“怎么在springboot中用redis实现消息队列”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在springboot中用redis实现消息队列”吧!准备阶段安装redi...
    99+
    2023-06-19
  • SpringBoot整合RocketMQ实现消息发送和接收的详细步骤
    我们使用主流的SpringBoot框架整合RocketMQ来讲解,使用方便快捷; 最终项目结构如下: 具体步骤如下: 第一步:新建SpringBoot项目rocketmq-test...
    99+
    2024-04-02
  • SpringBoot中怎么使用WebSocket实现点对点消息
    本篇内容介绍了“SpringBoot中怎么使用WebSocket实现点对点消息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、添加依赖,配...
    99+
    2023-06-08
  • RocketMQ消息队列实现随机消息发送当做七夕礼物
    目录正文1 下载并启动RocketMQ1.1 首先启动name server1.2 然后启动Broker2 生产者3 消费者正文 都在过情人节,前端的小哥哥们给女朋友画个页面,美美的...
    99+
    2024-04-02
  • springboot怎么集成websocket实现消息推送
    要在Spring Boot中集成WebSocket实现消息推送,可以按照以下步骤进行操作: 添加依赖:在`pom.xml`文件中添...
    99+
    2023-10-26
    springboot websocket
  • SpringBoot怎么使用WebSocket实现群发消息
    这篇文章主要介绍了SpringBoot怎么使用WebSocket实现群发消息的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot怎么使用WebSocket实现群发消息文章都会有所收获,下面我们一起...
    99+
    2023-06-08
  • Spring Boot 整合RocketMq实现消息过滤功能
    目录简介根据TAG过滤消息生产者消费者测试结果根据SQL表达式过滤消息生产者消费者启动程序报错The broker does not support consumer to filt...
    99+
    2024-04-02
  • C#多路广播怎么实现
    这篇文章主要讲解了“C#多路广播怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#多路广播怎么实现”吧!一个代理同时代理几个方法。就是我们前面说到的那样,你去建造房子,现在要不仅仅是...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作