此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4! |
连接到多个系统
默认情况下,Binders 共享应用程序的 Spring Boot 自动配置,因此在 Classpath 上找到的每个 Binders 都有一个实例。 如果您的应用程序应连接到多个相同类型的代理,则可以指定多个 Binder 配置,每个配置具有不同的环境设置。
打开显式 Binder 配置将完全禁用默认 Binder 配置过程。
如果这样做,则所有正在使用的 Binder 都必须包含在配置中。
打算透明地使用 Spring Cloud Stream 的框架可以创建可以按名称引用的 Binder 配置,但它们不会影响默认的 Binder 配置。
为此,Binder 配置的标志可能设置为 false (例如, )。
这表示独立于默认 Binder 配置过程而存在的配置。defaultCandidate spring.cloud.stream.binders.<configurationName>.defaultCandidate=false |
以下示例显示了连接到两个 RabbitMQ 代理实例的处理器应用程序的典型配置:
spring:
cloud:
stream:
bindings:
input:
destination: thing1
binder: rabbit1
output:
destination: thing2
binder: rabbit2
binders:
rabbit1:
type: rabbit
environment:
spring:
rabbitmq:
host: <host1>
rabbit2:
type: rabbit
environment:
spring:
rabbitmq:
host: <host2>
特定 Binder 的属性也可以用于任何 Spring Boot 属性,
包括 this ,这对于为
特定的 Binders,例如覆盖自动配置的 bean。environment spring.main.sources |
例如;
environment:
spring:
main:
sources: com.acme.config.MyCustomBinderConfiguration
要为特定 Binder 环境激活特定配置文件,您应该使用属性:spring.profiles.active
environment:
spring:
profiles:
active: myBinderProfile