kafka引导设置cli选项和配置文件之间的优先级

q35jwt9p  于 2021-06-04  发布在  Kafka
关注(0)|答案(2)|浏览(355)

我用它来消耗数据:
kafka-console-consumer.sh--引导服务器kafka01:9092--主题测试--consumer.config/test/kafka/config/consumer.properties
consumer.properties文件具有以下设置:
[...]
bootstrap.servers=kafka01:9092、kafka02:9092、kafka03:9092
[...]
所以我在问bootstrap.server的优先顺序是什么?引导服务器最终将是什么?:
仅kafka01:9092(使用参数“--bootstrap sever”指定)?或者在consumer.properties文件中指定的kafka01:9092、kafka02:9092、kafka03:9092?
谢谢!

7y4bm7vi

7y4bm7vi1#

正如mike所建议的,我在引导服务器中提供了一个错误的地址,kafka显示了一个警告:无法解析错误的服务器
所以问题回答了,配置文件并不优先于选项的cli参数
--引导服务器

fdbelqdn

fdbelqdn2#

答案也在源代码中得到了证实 ConsoleConsumer 我们在哪里

private[tools] def consumerProps(config: ConsumerConfig): Properties = {
val props = new Properties
props ++= config.consumerProps
props ++= config.extraConsumerProps
setAutoOffsetResetValue(config, props)
props.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, config.bootstrapServer)
CommandLineUtils.maybeMergeOptions(
  props, ConsumerConfig.ISOLATION_LEVEL_CONFIG, config.options, config.isolationLevelOpt)
props}

所以你可以看到它使用 consumerProps 首先是通过配置文件提供的,然后是 extraConsumerProps 以下是作为命令行参数提供的参数:

val extraConsumerProps = CommandLineUtils.parseKeyValueArgs(options.valuesOf(consumerPropertyOpt).asScala)
val consumerProps = if (options.has(consumerConfigOpt))
  Utils.loadProps(options.valueOf(consumerConfigOpt))
else
  new Properties()

相关问题