在Spring Boot中集成RocketMQ,你需要进行以下步骤来配置生产者和消费者。下面是一个简化的流程:
1. 添加依赖
首先,在你的pom.xml
文件中添加RocketMQ的依赖项。确保你使用的是与Spring Boot兼容的版本。
<dependencies>
<!-- 其他依赖 -->
<!-- RocketMQ Spring Boot Starter -->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.3</version> <!-- 确认这是最新或适合你的版本 -->
</dependency>
<!-- 其他依赖 -->
</dependencies>
2. 配置application.yml
在src/main/resources/application.yml
中添加RocketMQ的相关配置。
rocketmq:
name-server: 127.0.0.1:9876 # RocketMQ NameServer 地址
producer:
group: your-producer-group # 生产者的组名
send-message-timeout: 3000 # 发送消息超时时间,默认3秒
consumer:
group: your-consumer-group # 消费者的组名
3. 创建生产者
你可以创建一个服务类来发送消息。
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class RocketMQProducer {
@Autowired
private RocketMQTemplate rocketMQTemplate;
public void sendMessage(String topic, String message) {
rocketMQTemplate.convertAndSend(topic, message);
}
}
4. 创建消费者
接下来,创建一个监听器来消费消息。
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;
@Service
@RocketMQMessageListener(topic = "your-topic", consumerGroup = "your-consumer-group")
public class RocketMQConsumer implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
System.out.printf("Receive message: %s %n", message);
// 处理接收到的消息
}
}
5. 使用
- 在需要发送消息的地方注入
RocketMQProducer
并调用其sendMessage
方法。 - 当有消息发布到指定的topic时,
RocketMQConsumer
将自动接收并处理这些消息。