0

我使用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,其中包含按指定配置的所有各种属性,但是这会创建一个新的独立的生产者和消费者。春季巴士卡夫卡生产者和消费者仍未配置超出默认值。

回答

0

如果我按照github的建议并将application.properties中的属性放在jar中,而不是通过spring-cloud-config配置它们,它就可以工作。通过spring-cloud-config配置的相同配置属性会导致配置崩溃,因为它似乎不喜欢属性名称中的括号。虽然它报告的错误不直接抱怨格式错误的属性键。当你只通过spring-boot执行这个配置时,它似乎工作得很好。所以,spring-boot和spring-cloud-config之间的配置解析似乎有差异。

相关问题