当前位置: 首页 > news >正文

Spring Boot整合RocketMQ

  1. pom.xml导入RocketMQ依赖

    <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.2.2</version>
    </dependency>
    
  2. application.yml中添加配置

    rocketmq:name-server: 127.0.0.1:9876producer:group: xaccess-key: myaccesskeysecret-key: mysecretKeysend-message-timeout: 10000tls-enable: trueconsumer:group: xaccess-key: myaccesskeysecret-key: mysecretKeytls-enable: true
    
  3. 创建MQ工具类

    public class MqUtil {private final RocketMQTemplate rocketMQTemplate;public MqUtil(RocketMQTemplate rocketMQTemplate) {this.rocketMQTemplate = rocketMQTemplate;}/*** 单条通知发送** @param topic   主题* @param message 消息*/public void convertAndSend(String topic, Object message) {rocketMQTemplate.convertAndSend(topic, message);}/*** 批量通知发送** @param topic    主题* @param messages 消息集合*/public <T extends Message<?>> SendResult syncSend(String topic, Collection<T> messages) {return rocketMQTemplate.syncSend(topic, messages);}/*** 批量通知发送** @param topic        主题* @param messages     消息集合* @param sendCallback 回调函数*/public <T extends Message<?>> void asyncSend(String topic, Collection<T> messages, SendCallback sendCallback) {rocketMQTemplate.asyncSend(topic, messages, sendCallback);}
    }
    
  4. 注入工具类Bean

    @Bean
    public MqUtil mqUtil(RocketMQTemplate rocketMQTemplate) {return new MqUtil(rocketMQTemplate);
    }
    
  5. 测试发消息

    @Resource
    private MqUtil mqUtil;@Test
    public void test() {mqUtil.convertAndSend(TopicConstant.TOPIC_B, "123456");
    }
    
  6. 订阅接收消息

    @Slf4j
    @Service
    @RequiredArgsConstructor(onConstructor = @__({@Autowired}))
    @RocketMQMessageListener(consumerGroup = GroupConstant.GROUP_A, topic = TopicConstant.TOPIC_B)
    public class TopicAConsumer implements RocketMQListener<Message> {@Overridepublic void onMessage(Message message) {log.info(JsonUtil.toJsonStr(message));}
    }

相关文章:

  • SSH秘钥登录服务器
  • Mybatis 动态 SQL - if
  • day44 1228
  • STM32 基础知识(探索者开发板)--93讲 PWM
  • 65.乐理基础-打拍子-前附点、后附点
  • Redis实现限流
  • 数字调制学习总结
  • R语言中的函数28:Reduce(), Filter(), Find(), Map(), Negate(), Position()
  • cpp_07_类型转换构造_析构函数_深拷贝_静态成员
  • 面试官:BIO、NIO、AIO的区别
  • 【AIGC_MIDJOURNEY】专业提示词+配图分析
  • python3处理docx并flask显示
  • Redis自动部署脚本编写
  • 字符串转成时间的SQL,一个多种数据库通用的函数
  • Elasticsearch 查询命令执行时,如何通过词项索引、词项字典、倒排表定位文档逻辑介绍
  • CAP理论的例子讲解
  • CentOS 7 修改主机名
  • CODING 缺陷管理功能正式开始公测
  • Druid 在有赞的实践
  • echarts花样作死的坑
  • flutter的key在widget list的作用以及必要性
  • IndexedDB
  • interface和setter,getter
  • JavaScript类型识别
  • magento2项目上线注意事项
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • ubuntu 下nginx安装 并支持https协议
  • 基于web的全景—— Pannellum小试
  • 前端面试之CSS3新特性
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 再谈express与koa的对比
  • FaaS 的简单实践
  • ​iOS安全加固方法及实现
  • ​MPV,汽车产品里一个特殊品类的进化过程
  • ​渐进式Web应用PWA的未来
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • $.ajax,axios,fetch三种ajax请求的区别
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (4)事件处理——(7)简单事件(Simple events)
  • (6)STL算法之转换
  • (9)目标检测_SSD的原理
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原創) 物件導向與老子思想 (OO)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core 中插件式开发实现
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .net6 webapi log4net完整配置使用流程
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复