SpringBoot 整合 Rocketmq

183 阅读1分钟

SpringBoot 整合 Rocketmq

一共两个 SpringBoot 项目

生产者

依赖

<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
    <version>2.2.2</version>
</dependency>

配置文件

rocketmq:
  # RocketMQ 的 NameServer 地址,多个用分号隔开
  name-server: 127.0.0.1:9876
  producer:
    # 生产者组名
    group: my-group

测试

@Autowired
private RocketMQTemplate rocketMQTemplate;

@Test
void name() {
    rocketMQTemplate.convertAndSend("topicTest-Spring", "你好!SpringBoot");
}

image.png

消费者

依赖

添加web起步依赖原因是消费者是一直监听的。

<!--添加web起步依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<!--rocketmq-->
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-spring-boot-starter</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

SpringBoot yml文件

rocketmq:
  # RocketMQ 的 NameServer 地址
  name-server: 127.0.0.1:9876
  consumer:
    # 消费者组名
    group: my-group

创建监听器

@Component
// 指定 RocketMQ 监听器,监听名为 "topicTest-Spring" 的主题,消费者组名从配置文件中读取
@RocketMQMessageListener(topic = "topicTest-Spring", consumerGroup = "${rocketmq.consumer.group}")
public class Consumer implements RocketMQListener<String> {

    @Override
    // 处理接收到的消息
    public void onMessage(String s) {
        // 接收到消息
        System.out.println(s);
    }
}