此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 spring-cloud-stream 4.1.4spring-doc.cn

连接到多个系统

默认情况下,Binders 共享应用程序的 Spring Boot 自动配置,因此在 Classpath 上找到的每个 Binders 都有一个实例。 如果您的应用程序应连接到多个相同类型的代理,则可以指定多个 Binder 配置,每个配置具有不同的环境设置。spring-doc.cn

打开显式 Binder 配置将完全禁用默认 Binder 配置过程。 如果这样做,则所有正在使用的 Binder 都必须包含在配置中。 打算透明地使用 Spring Cloud Stream 的框架可以创建可以按名称引用的 Binder 配置,但它们不会影响默认的 Binder 配置。 为此,Binder 配置的标志可能设置为 false (例如, )。 这表示独立于默认 Binder 配置过程而存在的配置。defaultCandidatespring.cloud.stream.binders.<configurationName>.defaultCandidate=false

以下示例显示了连接到两个 RabbitMQ 代理实例的处理器应用程序的典型配置:spring-doc.cn

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。environmentspring.main.sources

例如;spring-doc.cn

environment:
    spring:
        main:
           sources: com.acme.config.MyCustomBinderConfiguration

要为特定 Binder 环境激活特定配置文件,您应该使用属性:spring.profiles.activespring-doc.cn

environment:
    spring:
        profiles:
           active: myBinderProfile