gpt4 book ai didi

java - 将配置传递给 Kafka 客户端的推荐方法

转载 作者:行者123 更新时间:2023-11-30 01:42:50 24 4
gpt4 key购买 nike

一个KafkaProducer , KafkaConsumerAdminClient需要一些配置才能工作。例如,如果我们不设置 bootstrap.servers ,那么它就不知道要连接到哪里。

一开始我使用硬编码字符串作为键,然后我过渡到 ProducerConfig 中定义的常量, ConsumerConfigAdminClientConfig ,这样:

config.put("bootstrap.servers", "localhost:9092")

成为:

config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092")

这似乎是一个很好的做法,因为在编译时会发现错误的 key 。但是,当我想使用稍微不太常见的设置时,我需要在各种类之间切换:

config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092")
config.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, SecurityProtocol.SSL.name)
config.put(SslConfigs.SSL_KEYSTORE_TYPE_CONFIG, "PKCS12")

SECURITY_PROTOCOL_CONFIG不存在于 ProducerConfig 中,所以我用了 CommonClientConfigs它的定义位置,但可能的值在 SecurityProtocol 中枚举。 SSL相关设置位于SslConfigs仅有的。

看起来不太干净。也许有更好的方法吗?或者我应该坚持使用字符串?

最佳答案

说实话,这个分组对我来说很有意义。它尝试将生产者、消费者以及两者共同的配置参数进行分组关于SslConfigs,它提供了所有与SSL相关的配置参数。安全协议(protocol)规范是生产者和消费者的通用参数,它不仅仅是关于 SSL,它甚至可能是 PLAINTEXT,所以......“没有安全性”。回到您的具体问题,我总是更喜欢使用这些声明而不是硬编码字符串。如果其中之一将来会更改其值,您无需更改客户端代码。

关于java - 将配置传递给 Kafka 客户端的推荐方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com