我们有一个 Spring Boot 微服务,除了 HTTP 端点使用 Spring Cloud Bus 来获取刷新事件(来自 rabbit),还有一个 Spring Cloud Stream Sink 可以从另一个 rabbit 主题中获取自定义消息。
在更新到 Spring Boot 2.4.1 和 Spring Cloud 2020.0.0 之后,一切似乎都在工作,直到我们发现 Spring Cloud Bus 不再接收事件。对此进行调查,结果发现一些 Spring Cloud Bus 内部通道没有被创建。
这在另一个没有流功能的服务中没有发生,所以我们测试了禁用它,然后总线功能开始工作。所以这显然是旧式流模型和新的 Spring Cloud Bus 之间的某种干扰。
在更新我们的接收器以使用新的功能模型后,我仍然遇到问题,最终通过在我们的 application.yml 中包含以下几行来让两者都工作:
spring:
cloud:
stream:
bindings.mySink-in-0.destination: mytopic
function.definition: busConsumer;mySink
所以我有以下问题
- 我是否遗漏了什么,或者是否应该有更好的文档来说明流/总线如何相互影响以及迁移到 2020.0.0?
- 我当前的配置看起来正确吗?
- 必须在此处包含 busConsumer 似乎是不对的 - 它的自动配置是否应该不能与任何其他流配置“组合”?
spring.cloud.stream.function.definition
和有什么区别spring.cloud.function.definition
?我在文档中都看到过,而且 Spring Cloud Bus 似乎也在设置spring.cloud.function.definition=busConsumer