如何为开发目的禁用 Spring Cloud Stream 绑定?
Posted
技术标签:
【中文标题】如何为开发目的禁用 Spring Cloud Stream 绑定?【英文标题】:How to disable spring cloud stream binding for develop purposes? 【发布时间】:2018-01-24 10:48:41 【问题描述】:我需要禁用事件的发布和订阅以进行开发,但我找不到一些配置属性/其他解决方案。我该怎么做?
可能的解决方案:在某些属性集上使用@EnableBinding
创建自动配置,并在禁用的情况下将所有绑定接口替换为生成的无操作存根。但也许存在更简单的解决方案?
【问题讨论】:
【参考方案1】:其中一个选项可能是在类路径中注入显式 No-Op Binder 并使其成为 default
binder。
出于开发目的(尤其是您不想通过任何绑定器实现将事件发布到真实的消息传递系统),您可以使用spring-cloud-stream-test-support
中的TestSupportBinder
,它可以让您测试整个应用程序。
你可以找到一些例子here
【讨论】:
您好,如何在类路径中注入 No-Op binder?我有一个带有rabbit和kafka binders的项目,我想将no-op binders设置为尚未准备好的目的地,以避免例如绑定消费者的错误。【参考方案2】:目前不支持选择性地开始和停止绑定。我们正在跟踪这是一个 2.0 功能。你可以在这里跟踪它的进度:https://github.com/spring-cloud/spring-cloud-stream/issues/763
【讨论】:
【参考方案3】:我面临着类似的情况,我们的代码将部署到生产环境中。但是这些需要被禁用,直到我们有其他团队准备好在那里发布消息,所以我们想告诉 spring cloud stream 在我们指定特定配置之前不要初始化任何 bean。
我试图查看@Vinicius menthod .. 但看起来它只提供了一种在应用程序启动后停止、恢复频道的方法。
我们是否可以在启动应用程序时停止这些 bean。
【讨论】:
以上是关于如何为开发目的禁用 Spring Cloud Stream 绑定?的主要内容,如果未能解决你的问题,请参考以下文章