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之間的配置解析似乎有差異。

相關問題