Maven添加依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rocketmq</artifactId>
<version>${spring-cloud-starter-stream-rocketmq.version}</version>
</dependency>
yml配置
消费者和生产者的使用方式为:名称-out-数字的方式用于生产者,名称-in-数字的方式用于消费者。
spring:
cloud:
function:
definition: receive1;receive2;receive3 #重点配置 与 binding 名与消费者对应,多个可以使用;
stream:
rocketmq:
binder:
name-server: 127.0.0.1:9876 #rocketmq 地址
vipChannelEnabled: false
bindings:
receive1-in-0:
consumer:
tags: s1||s2 #消费tag
broadcasting: false #是否使用广播消费,默认为 false 使用集群消费
receive1-out-0:
producer:
sync: true #开启同步发送
receive2-in-0:
consumer:
tags: #消费tag
broadcasting: true # 是否使用广播消费,默认为 false 使用集群消费
receive2-out-0:
producer:
sync: false #默认异步
receive3-in-0:
consumer:
tags: #消费tag
broadcasting: false # 是否使用广播消费,默认为 false 使用集群消费
receive3-out-0:
producer:
sync: true
bindings:
#消费者
receive1-in-0:
destination: receive1-topic #topic
content-type: application/json
group: receive1-in-group #group
#生产者
receive1-out-0:
destination: receive1-topic #topic
group: receive1-out-group
receive2-in-0:
destination: receive2-topic #topic
content-type: application/json
group: receive2-in-group #group
receive2-out-0:
destination: receive2-topic #topic
group: receive2-out-group
receive3-in-0:
destination: receive3-topic #topic
content-type: application/json
group: receive3-in-group #group
receive3-out-0:
destination: receive3-topic #topic
group: receive3-out-group #group
生产者发生消息
@RestController
@RequestMapping("/stream")
@RequiredArgsConstructor
@Slf4j
public class StreamController {