我使用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的经纪人,但我最终得到看起来像这样的警告信息的重复序列(每个经纪人):如何为spring-cloud-starter-bus-kafka提供SSL配置1.2.0.RELEASE
Bootstrap broker broker1:9993 disconnected
Bootstrap broker broker2:9993 disconnected
在我的配置,我有(只是在这里包含相关部分):
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吐出自己的配置值,他们都表示:
security.protocol = PLAINTEXT
ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
ssl.endpoint.identification.algorithm = null
而且,我得到的以下警告消息:
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,其中包含按指定配置的所有各种属性,但是这会创建一个新的独立的生产者和消费者。春季巴士卡夫卡生产者和消费者仍未配置超出默认值。