-
消费者
-
- Push模式
-
Pull模式
-
高级
-
- 请求应答语义
-
ACL功能
-
消息轨迹
-
常见问题
官网地址: https://github.com/apache/rocketmq-spring
特性
-
同步发送消息
-
异步发送消息
-
以单向模式发送消息
-
发送有序消息
-
发送批量消息
-
发送交易消息
-
发送具有延迟级别的预定消息
-
以并发模式(广播/集群)消费消息
-
消费有序消息
-
使用标记或 sql92 表达式过滤消息
-
支持消息追踪
-
支持认证和授权
-
支持请求-回复消息交换模式
-
使用推/拉模式消费消息
直接使用官方的rocketmq-spring-boot-starter
地址:https://search.maven.org/artifact/org.apache.rocketmq/rocketmq-spring-boot-starter
pom.xml
org.apache.rocketmq
rocketmq-spring-boot-starter
2.1.1
2.1.1版本,内置的rocketmq-client版本为4.7.1应该与你rocketmq服务保持一致。
配置文件如下:
rocketmq:
rocketMQ的命名服务器,格式为: host:port;host:port
name-server: localhost:9876
producer:
生产者的组名
group: my-group1
发送消息超时时间 默认3秒
send-message-timeout: 3000
注意:
请将上述示例配置中的
127.0.0.1:9876
替换成真实RocketMQ的NameServer地址与端口
引入RocketMQTemplate
@Resource
private RocketMQTemplate rocketMQTemplate;
同步发送消息
可靠的同步传输应用于广泛的场景,如重要通知消息、短信通知、短信营销系统等。
// 发送字符串
rocketMQTemplate.syncSend(“springTopic”, “Hello, World!”);
// 同步发送
rocketMQTemplate.convertAndSend(“test-topic-1”, “Hello, World!”);
// 发送对象
rocketMQTemplate.syncSend(“userTopic”, new User().setUserAge((byte) 18).setUserName(“Kitty”));
// 发送spring 消息
rocketMQTemplate.syncSend(userTopic, MessageBuilder.withPayload(
new User().setUserAge((byte) 21).setUserName(“Lester”)).setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON_VALUE).build());
异步发送消息
异步传输一般用于响应时间敏感的业务场景。
rocketMQTemplate.asyncSend(“orderPaidTopic”, “异步发送”, new SendCallback() {
@Override
public void onSuccess(SendResult var1) {
// 成功回调
System.out.printf(“async onSucess SendResult=%s %n”, var1);
}
@Override
public void onException(Throwable var1) {
// 失败回调
System.out.printf(“async onException Throwable=%s %n”, var1);
}
});
单向发送消息
单向传输用于需要中等可靠性的情况,例如日志收集。
rocketMQTemplate.sendOneway(“springTopic”, “Hello, World!”);
发送有序消息
rocketMQTemplate.syncSendOrderly(“orderly_topic”,MessageBuilder.withPayload(“Hello, World”).build(),“hashkey”)
发送事务消息
Mess