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*
在我的项目中,我需要通过 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*