pom文件引入Maven
<!-- spring-cloud-steam-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
</dependency>
配置文件:
spring:
cloud:
# spring-cloud-stream Mq 配置
stream:
rocketmq:
binder:
name-server: #地址
bindings:
mqConsumer-in-0: #消费者
consumer:
subscription: tagA #过滤消费必须写在这里否则不生效
bindings:
## 3.x后新版本固定格式 channel名字-{out/in}-{index}
mqConsumer-out-0: #生产者
destination: test-a #生产者 topic
contentType: application/json
mqConsumer-in-0: #消费者
consumer:
#消费者并发 默认为1
concurrency: 1
#是否分区接收数据 默认false
partitioned: false
#重试次数
max-attempts: 3
#初始回退间隔时间
back-off-initial-interval: 1000
#最大回退间隔时间
back-off-max-interval: 10000
#回退倍数
back-off-multiplier: 2.0
destination: test-a #消费者 topic
contentType: application/json
消费者代码:
@Component
@Slf4j
public class mqConsumer implements Consumer<String> {
@SneakyThrows
@Override
public void accept(String message) {
log.info("message:"+message)
}
生产者代码:
@SpringBootTest
public class ProduceTest {
@Resource
private StreamBridge streamBridge;
@Test
public void produceTest() throws Exception {
streamBridge.send("mqConsumer-out-0",
MessageBuilder
.withPayload("信息")
.setHeader("TAGS","tags")
.setHeader("KEYS","test")
.build()
);
}
}