如何正确配置重写@StreamListener后的Spring Cloud Stream绑定?
配置修正说明
你的配置存在格式错误,正确的配置可参考以下两种写法:
如果你沿用旧注解@StreamListener(Sink.INPUT)对应的默认消息目标,配置如下:
spring: cloud: stream: bindings: processMessage-in-0: destination: input
如果确实需要将消息目标设置为sink,则配置为:
spring: cloud: stream: bindings: processMessage-in-0: destination: sink
关键注意点
- 不要将
destination的值换行书写,YAML语法中直接紧跟冒号赋值即可,引号可加可不加,保持格式简洁。 processMessage-in-0中的processMessage必须和你定义的ConsumerBean方法名完全一致,这是Spring Cloud Stream函数式绑定的规则——输入绑定命名格式为{函数名}-in-{索引},这里索引为0(单输入场景)。destination的值要和消息发送方指定的目标保持一致,旧注解@StreamListener(Sink.INPUT)默认对应目标是input,若发送端未修改该配置,此处就用input;若发送端目标是sink,则配置为sink。
内容的提问来源于stack exchange,提问作者Mejmo
相关产品推荐
相关产品推荐

