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));
        }
    }
相关推荐
happymagic5 小时前
java spring boot做的jar包程序,如何实现自动运行启动
java·运维·服务器·spring boot·jar
2601_9638701812 小时前
【计算机毕业设计】基于Vue + Spring Boot的社区养老服务管理平台设计与实现
spring boot·后端·课程设计
乐观的Terry12 小时前
11、发布系统-用户认证与权限体系
java·spring boot·spring·spring cloud·mybatis
William Dawson13 小时前
【踩坑实录|Hive1\.2\.1数据服务接口5大疑难问题调试与全方位优化方案】
java·hive·spring boot
闲猫13 小时前
LangChain4j / Introduction
java·人工智能·spring boot·langchain4j
CodeHackerBhx14 小时前
Spring Boot 4 防重复提交:从接口幂等到 Redis 分布式锁的完整实践
java·数据库·spring boot·redis·分布式
用户31268748772016 小时前
Spring Bean 生命周期到底经历了什么?从实例化到销毁的全链路拆解
java·spring boot
Flittly17 小时前
【我的手搓轮子日记】(2)handmade-ioc 手搓 IOC 容器
java·spring boot·spring
AlunYegeer17 小时前
Spring Boot 多模块服务间 API Token 鉴权排查记录
java·spring boot·后端
paopaokaka_luck17 小时前
基于springboot3+vue3的乡村医生诊疗管理系统(AI助手、协同过滤算法、webSocket实时聊天、Echarts图形化分析)
前端·网络·人工智能·spring boot·websocket·网络协议·echarts