Spring Cloud Kafka多Broker SSL配置:不同Binder如何配置独立SSL参数
配置方案
你可以直接在每个 Kafka Binder 各自的 environment 配置项下,独立添加对应的 SSL 参数,每个 Binder 的环境上下文是完全隔离的,不会互相影响,也不会和全局配置冲突。
完整配置示例如下:
spring: cloud: stream: binders: kafka-1: type: kafka environment: spring: cloud: stream: kafka: binder: brokers: *url-1* # 以下为kafka-1独立的SSL配置 kafka: producer: ssl: trust-store-location: classpath:kafka1-truststore.jks trust-store-password: kafka1-password key-store-location: classpath:kafka1-keystore.jks key-store-password: kafka1-password consumer: ssl: trust-store-location: classpath:kafka1-truststore.jks trust-store-password: kafka1-password key-store-location: classpath:kafka1-keystore.jks key-store-password: kafka1-password # 公共SSL参数可直接放到该层级,对当前Binder的生产、消费都生效 ssl: protocol: TLSv1.3 kafka-2: type: kafka environment: spring: cloud: stream: kafka: binder: brokers: *url-2* # 以下为kafka-2独立的SSL配置 kafka: producer: ssl: trust-store-location: classpath:kafka2-truststore.jks trust-store-password: kafka2-password consumer: ssl: trust-store-location: classpath:kafka2-truststore.jks trust-store-password: kafka2-password
补充说明
- 如果同一个Binder的生产者和消费者SSL配置一致,可以直接把公共参数放到
spring.kafka.ssl层级下,无需分别在producer、consumer节点重复配置 - 配置中的证书路径可以根据实际情况用文件绝对路径,或者classpath路径引用资源目录下的证书文件
- 所有Kafka支持的SSL参数(比如密钥库类型、SSL协议版本、端点识别算法等)都可以按这个规则单独配置到对应Binder下
内容的提问来源于stack exchange,提问作者Alexander Orlov
相关产品推荐
相关产品推荐

