【发布时间】:2018-12-21 07:08:15
【问题描述】:
我有一个与 Kafka 通信的 Spring Boot 应用程序。
我通过注入环境变量在生产中配置此应用程序。
对于 kafka,我可以使用环境变量配置大多数东西 - 引导服务器、ssl 信任库位置、ssl 信任库密码、组 ID、主题,例如:
SPRING_KAFKA_SSL_TRUSTSTORE-LOCATION: "file:/opt/app/jks/totally_real_file.jks"
SPRING_KAFKA_SSL_TRUSTSTORE-PASSWORD: "hunter2"
因为我可以使用环境变量配置 ssl 密钥库和密码,所以我假设我可以配置 SSL 协议和安全协议;例如:
SPRING_KAFKA_PROPERTIES_SECURITY_PROTOCOL: "SSL"
SPRING_KAFKA_PROPERTIES_SSL_PROTOCOL: "SSL"
但是,我会假设不正确,因为当我在那里设置时,会出现一条消息:
The configuration 'SECURITY_PROTOCOL' was supplied but isn't a known config
The configuration 'SSL_PROTOCOL' was supplied but isn't a known config
出现更多消息!
Bootstrap broker one:9093 disconnected
Bootstrap broker two:9093 disconnected
Bootstrap broker more_than_two:9093 disconnected
这让我很难过。我在网上搜索。 我找到了链接:
Spring Kafka SSL setup in Spring boot application.yml
这没什么用,我想通过环境变量来配置...
我发现 github 问题链接(情况越来越糟):
https://github.com/spring-projects/spring-integration-kafka/issues/157
这提供了部分线索。
yml:
spring.kafka.properties.security.protocol: "SSL"
应该工作,但没有
yml:
spring:
kafka:
properties:
security.protocol: "SSL"
ssl.protocol: "SSL"
确实有效!但无法用环境变量来表示。
【问题讨论】:
标签: java spring-boot ssl environment-variables spring-kafka