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:9876
        producer:
            group: x
            access-key: myaccesskey
            secret-key: mysecretKey
            send-message-timeout: 10000
            tls-enable: true
        consumer:
            group: x
            access-key: myaccesskey
            secret-key: mysecretKey
            tls-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> {
    
        @Override
        public void onMessage(Message message) {
            log.info(JsonUtil.toJsonStr(message));
        }
    }
相关推荐
皮皮林5512 小时前
SpringBoot + Disruptor 实现特快高并发处理,支撑每秒 600 万订单无压力!
spring boot
阿丰资源3 小时前
基于SpringBoot的在线视频教育平台的设计与实现(附源码+数据库+文档,一键运行)
数据库·spring boot·后端
苍煜3 小时前
ThreadPoolExecutor线程池终极全解:同步异步判定+SpringBoot生产实战
java·开发语言·spring boot
阿丰资源11 小时前
基于SpringBoot的房产销售系统设计与实现(附源码+数据库+文档,一键运行)
数据库·spring boot·后端
aLTttY11 小时前
Spring Boot整合AI大模型实现智能问答系统实战
人工智能·spring boot·后端
Java成神之路-14 小时前
面试题:@Controller 与 @RestController 区别
java·spring boot
aLTttY15 小时前
Spring Boot 3.x 集成 AI 大模型实战指南
人工智能·spring boot·后端
凤山老林16 小时前
Spring Boot 集成 TigerGraph 实现图谱分析技术方案
java·spring boot·后端·图谱分析·tigergraph
.生产的驴16 小时前
SpringBoot 大文件分片上传 文件切片、断点续传与性能优化 切片技术与优化方案 文件高效上传
java·服务器·spring boot·后端·spring·spring cloud·状态模式
m0_380113841 天前
补单系统搭建及源码分享
数据库·spring boot·mybatis