springcloud 整合rocketmq
时间: 2023-08-27 18:06:54 浏览: 169
Spring Cloud与RocketMQ的整合有很多种方式,下面介绍一种比较简单的方式。
1. 添加Maven依赖
在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
```
2. 配置RocketMQ
在application.yml文件中添加RocketMQ的配置信息:
```yaml
rocketmq:
name-server: 192.168.1.100:9876 # RocketMQ的NameServer地址
producer:
groupName: test-group # 生产者组名
consumer:
groupName: test-group # 消费者组名
topic: test-topic # 消费者订阅的主题
consumeThreadMax: 64 # 最大消费线程数
```
3. 编写生产者
在Spring Boot应用程序中,我们可以使用RocketMQTemplate发送消息。RocketMQTemplate是Spring RocketMQ的核心类,它封装了RocketMQ的生产者和消费者API,提供了一组方便的方法来发送和接收消息。
```java
@RestController
public class ProducerController {
@Autowired
private RocketMQTemplate rocketMQTemplate;
@GetMapping("/send")
public String send(String message) {
rocketMQTemplate.convertAndSend("test-topic", message);
return "success";
}
}
```
上面的代码演示了如何使用RocketMQTemplate发送消息。convertAndSend方法接受两个参数:主题和消息内容。在这个例子中,我们发送的消息内容是从请求参数中获取的。
4. 编写消费者
RocketMQ的消费者可以通过注解@RocketMQMessageListener来定义。在使用注解的时候需要指定以下几个属性:
- topic:消费者订阅的主题。
- consumerGroup:消费者组名。
- selectorExpression:消息过滤表达式,可以为空。
```java
@Component
@RocketMQMessageListener(topic = "test-topic", consumerGroup = "test-group")
public class ConsumerListener implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
System.out.println("received message: " + message);
}
}
```
上面的代码演示了如何使用@RocketMQMessageListener注解定义消费者。在这个例子中,我们定义了一个消费者组为test-group,订阅主题为test-topic的消息。onMessage方法接收一个参数,表示接收到的消息内容。
5. 运行应用程序
启动Spring Boot应用程序后,访问http://localhost:8080/send?message=hello,可以看到控制台输出received message: hello,表示消息已经成功接收。
至此,Spring Cloud与RocketMQ的整合已经完成。
阅读全文