SpringBoot整合RocketMq
文章目录
- SpringBoot整合RocketMq
-
- 添加依赖
-
- [步骤 1:添加 RocketMQ 的依赖 在你的 `pom.xml` 文件中添加以下依赖:](#步骤 1:添加 RocketMQ 的依赖 在你的
pom.xml
文件中添加以下依赖:) - [步骤 2:配置 RocketMQ 的属性 在你的 `application.properties` 或 `application.yml` 文件中添加以下配置:](#步骤 2:配置 RocketMQ 的属性 在你的
application.properties
或application.yml
文件中添加以下配置:) - [步骤 3:编写发送者 创建一个发送者,用于向指定的主题发送消息。](#步骤 3:编写发送者 创建一个发送者,用于向指定的主题发送消息。)
- [步骤 4:编写消费者 创建一个消费者,用于订阅指定的主题并消费消息。](#步骤 4:编写消费者 创建一个消费者,用于订阅指定的主题并消费消息。)
- [步骤 5:测试发送者和消费者 在你的应用程序中调用发送者,向指定主题发送消息。同时,确保你的消费者正在运行,以便接收到消息并处理。](#步骤 5:测试发送者和消费者 在你的应用程序中调用发送者,向指定主题发送消息。同时,确保你的消费者正在运行,以便接收到消息并处理。)
- [步骤 1:添加 RocketMQ 的依赖 在你的 `pom.xml` 文件中添加以下依赖:](#步骤 1:添加 RocketMQ 的依赖 在你的
添加依赖
步骤 1:添加 RocketMQ 的依赖 在你的 pom.xml
文件中添加以下依赖:
xml
<properties>
<rocketmq.version>2.1.0</rocketmq.version>
</properties>
<!--rocket mq-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>${rocketmq.version}</version>
</dependency>
步骤 2:配置 RocketMQ 的属性 在你的 application.properties
或 application.yml
文件中添加以下配置:
yaml
rocketmq:
name-server: 127.0.0.1:9876
producer:
group: variable-monitor-producer-group
步骤 3:编写发送者 创建一个发送者,用于向指定的主题发送消息。
java
package com.kang.grafana.rocketmq.producer;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* 编写发送者 创建一个发送者,用于向指定的主题发送消息
*/
@Service
public class Sender {
@Autowired
private RocketMQTemplate rocketMQTemplate;
public void send(String topic, String message) {
rocketMQTemplate.convertAndSend(topic, message);
}
}
步骤 4:编写消费者 创建一个消费者,用于订阅指定的主题并消费消息。
java
package com.kang.grafana.rocketmq.consume;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
@Service
@RocketMQMessageListener(topic = "variable-monitor-topic", consumerGroup = "variable-monitor-consumer-group")
public class Consumer implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
System.out.println("Received message: " + message);
}
}
步骤 5:测试发送者和消费者 在你的应用程序中调用发送者,向指定主题发送消息。同时,确保你的消费者正在运行,以便接收到消息并处理。
java
package com.kang.grafana.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.kang.grafana.rocketmq.producer.Sender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @Author Emperor Kang
* @ClassName RocketMqController
* @Description TODO
* @Date 2023/9/12 14:17
* @Version 1.0
* @Motto 让营地比你来时更干净
*/
@RestController
@RequestMapping("/rocket")
public class RocketMqController {
@Autowired
private ThreadPoolExecutor bigdataThreadPoolExecutor;
@Autowired
private Sender sender;
@RequestMapping("/send/message")
public Object send(){
String topic = "variable-monitor-topic";
String message = JSON.toJSONString(bigdataThreadPoolExecutor, SerializerFeature.WriteMapNullValue);
sender.send(topic,message);
return Boolean.TRUE;
}
}