RocketMQ 是一个分布式消息中间件。Spring Cloud Alibaba 对其进行了封装,使得在 Spring 应用中可以更加方便地使用 RocketMQ。
以下是一个使用 Spring Cloud Alibaba RocketMQ 发送和接收消息的简单示例:
- 添加依赖到你的
pom.xml
:
<dependencies>
<!-- 其他依赖... -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
</dependency>
</dependencies>
- 配置
application.yml
:
spring:
cloud:
stream:
rocketmq:
binder:
namesrv-addr: localhost:9876 # RocketMQ NameServer 地址
bindings:
output:
destination: test-topic # 消息发送的目的地
input:
destination: test-topic # 消息接收的目的地
group: test-group # 消费者组名
- 发送消息:
@EnableBinding(Source.class)
public class Sender {
@Autowired
private MessageChannel output;
public void send(String content) {
output.send(MessageBuilder.withPayload(content).build());
}
}
- 接收消息:
@EnableBinding(Sink.class)
public class Receiver {
@StreamListener(Sink.INPUT)
public void receive(String payload) {
System.out.println("Received: " + payload);
}
}
- 启动你的应用并测试:
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(YourApplication.class, args);
Sender sender = context.getBean(Sender.class);
sender.send("Hello, RocketMQ!");
}
在这个例子中,我们定义了一个发送器 Sender
和一个接收器 Receiver
。发送器通过 Spring Cloud Stream 的 Source
绑定发送消息,接收器通过 Sink
绑定接收消息。在 application.yml
中配置了 RocketMQ 的地址和消息目的地。
这只是一个简单的示例,实际使用时可能需要考虑更多的配置选项,如消息的可靠性、安全性等。