Spring 使用 SSL 云 Kafka 多个代理

Spring cloud Kafka multiple Brokers with SSL

在我的项目中,我需要通过 SSL 连接到两个不同的 Kafka 代理

我的 application.yml 看起来有点像这样:

spring:
  cloud:
    stream:
      binders:
        kafka-1:
          type: kafka
          environment:
            spring:
              cloud:
                stream:
                  kafka:
                    binder:
                      brokers: *url-1*
        kafka-2:
          type: kafka
          environment:
            spring:
              cloud:
                stream:
                  kafka:
                    binder:
                      brokers: *url-2*

如果kafka服务器不需要授权就可以。

但问题是 - 我需要为它们使用不同的 SSL 设置!

我发现唯一可以使用不同 ssl 设置的 属性 是:

spring:
  kafka:
    producer:
      ssl:
        trust-store-location: ...
        ...
    consumer:
      ssl:
        trust-store-location: ...
        ...

但这对我的情况不起作用,也没有任何意义

您需要将它们放在 YAML 中的每个 environment 节点下。

感谢 Gary Russell,我最终得到了这样的工作属性:

spring:
  cloud:
    stream:
      binders:
        kafka-1:
          type: kafka
          environment:
            spring:
              kafka:
                ssl:
                  protocol: SSL
                  key-store-location:...
                  key-password:...
                  trust-store-location:...
                  trust-store-password:...
              cloud:
                stream:
                  kafka:
                    binder:
                      confuguration:
                        security.protocol: SSL
                        ssl.endpoint.identification.algorithm: ''
                      brokers: *url-1*
        kafka-2:
          type: kafka
          environment:
            spring:
              cloud:
                stream:
                  kafka:
                    binder:
                      brokers: *url-2*