首页 文章

如何为spring-cloud-starter-bus-kafka 1.2.0.RELEASE提供SSL配置

提问于
浏览
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的代理,但我最终得到一个重复的警告消息序列(每个代理一个),如下所示:

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.

我将需要为truststore,keystore及其密码和商店类型添加配置,我还想知道如何在yaml配置中提供那些没有硬编码的配置 . 我首选的方法是使用jvm属性填充这些配置属性 .

知道我做错了什么吗?

尝试各种各样的事情后,这是一个有趣的更新如果我创建一个使用@EnableKafkaStreams注释的@Configuration类,我可以创建一个StreamsConfig,其中包含按指定配置的所有各种属性,但这会创建一个新的独立的 生产环境 者和使用者 . Spring Cloud 总线kafka 生产环境 者和消费者仍未配置超出默认值 .

1 回答

  • 0

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

相关问题