spring cloud stream 新绑定方式
新版提倡用函数式进行发送和消费信息
定义返回类型为Supplier, Function or Consumer的bean提供消息发送和消费的bean
看看绑定名称命名规则
- input - + -in- +
- output - + -out- +
在配置文件中指定spring.cloud.function.definition的名称后会把这个bean绑定到对应的消费者和提供者上.
如下定义 会把bean绑定在消费者consumerEvent-in-0或者提供者consumerEvent-out-0上
多个bean可以用 ; 进行分割
1 | yaml复制代码spring: |
指定这个消费者的topic和group
1 | yaml复制代码spring: |
注册消费者的bean
1 | java复制代码// 第一种方式(官方推荐) |
示例
提供者
1 | java复制代码@Configuration |
配置rocketmq和stream的配置
1 | yaml复制代码spring: |
注册一个消费者
1 | java复制代码@Configuration |
依赖
spring cloud 2020 默认不使用bootstrap启动 要加这个依赖spring-cloud-starter-bootstrap
1 | pom复制代码<dependency> |
Tag过滤
在新版的时候过滤tag一直失效, 后面看源码发现新版的sql和tag结合到subscription的属性中
1 | java复制代码this.pushConsumer.subscribe(this.topic, RocketMQUtils.getMessageSelector(((RocketMQConsumerProperties)this.extendedConsumerProperties.getExtension()).getSubscription())); |
如果消费者要过滤某个tag需要这么写
1 | yaml复制代码// 新版 (现在的写法) |
本文转载自: 掘金