How to provide SSL configuration for spring-cloud-starter-bus-kafka 1.2.0.RELEASE
我使用的是 Spring Boot 1.5.6.RELEASE、Spring Cloud Config 1.3.2.RELEASE、Spring Cloud Starter Bus (Kafka) 1.2.0.RELEASE,Kafka 版本是 0.10.1.1。我正在尝试将其配置为使用两个启用 ssl 的代理,但我最终会收到一系列重复的警告消息(每个代理一个),如下所示:
1 2 | Bootstrap broker broker1:9993 disconnected Bootstrap broker broker2:9993 disconnected |
在我的配置中,我有(仅包括此处的相关部分):
1 2 3 4 5 6 7 8 9 10 11 | spring: cloud: stream: kafka: binder: zkNodes: zkhost1:2181,zkhost2:2181 brokers: broker1:9993,broker2:9993 configuration: security.protocol: SSL ssl.enabled.protocols: TLSv1.1,TLSv1.2 ssl.endpoint.identification.algorithm: HTTPS |
但是,当ProducerConfig和ConsumerConfig吐出它们的配置值时,它们都表示:
1 2 3 | security.protocol = PLAINTEXT ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1] ssl.endpoint.identification.algorithm = null |
另外,我收到以下警告消息:
1 2 3 4 | The configuration 'key.deserializer' was supplied but isn't a known config. The configuration 'value.deserializer' was supplied but isn't a known config. The configuration 'ssl' was supplied but isn't a known config. The configuration 'security' was supplied but isn't a known config. |
我需要为信任库、密钥库以及它们的密码和存储类型添加配置,我还想知道如何在不将它们硬编码到 yaml 配置中的情况下提供这些配置。我的首选方法是使用 jvm 属性填充这些配置属性。
知道我做错了什么吗?
在尝试了各种方法之后,这是一个有趣的更新。如果我创建一个使用@EnableKafkaStreams 注释的@Configuration 类,我可以创建一个StreamsConfig,其中包含按指定配置的所有各种属性,但这会创建一个新的独立的生产者和消费者。 spring cloud bus kafka 生产者和消费者仍然没有配置超出默认值。
如果我按照 github 上的建议将属性放在 jar 中的