如何从命令行获取默认的kafka配置全局和每个主题?

ma8fv8wu  于 2021-06-07  发布在  Kafka
关注(0)|答案(3)|浏览(507)

如何从命令行或其他方式获取默认的kafka配置全局和每个主题?
我知道默认值在代理配置上可用,您可以使用descripe获得每个主题的“覆盖”,但是如果我对主题级配置做了很多更改,那么最好获得所有值,包括每个主题的覆盖。

$KAFKA_HOME/bin/kafka-topics.sh --zookeeper $ZK --describe --topic test-topic
$KAFKA_HOME/bin/kafka-configs.sh --zookeeper $ZK --describe --entity-name test-topic --entity-type topics

仅供参考,我刚刚开始使用Kafkav0.9.0.1。
显然,有人在讨论为什么这是不可能的,所以我想没有解决办法。

zpgglvta

zpgglvta1#

自Kafka2.5.0(见https://issues.apache.org/jira/browse/kafka-9040),您现在可以使用 --all 查看所有(默认和覆盖)主题配置的选项:

% kafka-configs --bootstrap-server <KAFKA_SERVERS> --entity-type topics --entity-name <TOPIC_NAME> --describe --all
All configs for topic <TOPIC_NAME> are:
  compression.type=producer sensitive=false synonyms={}
  message.format.version=1.0-IV0 sensitive=false synonyms={}
  file.delete.delay.ms=60000 sensitive=false synonyms={}
  leader.replication.throttled.replicas= sensitive=false synonyms={}
  max.message.bytes=1000012 sensitive=false synonyms={}
  min.compaction.lag.ms=0 sensitive=false synonyms={}
  message.timestamp.type=CreateTime sensitive=false synonyms={}
  min.insync.replicas=1 sensitive=false synonyms={}
  segment.jitter.ms=0 sensitive=false synonyms={}
  preallocate=false sensitive=false synonyms={}
  index.interval.bytes=4096 sensitive=false synonyms={}
  min.cleanable.dirty.ratio=0.5 sensitive=false synonyms={}
  unclean.leader.election.enable=false sensitive=false synonyms={}
  retention.bytes=-1 sensitive=false synonyms={}
  delete.retention.ms=86400000 sensitive=false synonyms={}
  cleanup.policy=delete sensitive=false synonyms={}
  flush.ms=1000 sensitive=false synonyms={}
  follower.replication.throttled.replicas= sensitive=false synonyms={}
  segment.bytes=1073741824 sensitive=false synonyms={}
  retention.ms=172800000 sensitive=false synonyms={}
  segment.ms=604800000 sensitive=false synonyms={}
  message.timestamp.difference.max.ms=9223372036854775807 sensitive=false synonyms={}
  flush.messages=10000 sensitive=false synonyms={}
  segment.index.bytes=10485760 sensitive=false synonyms={}

正如您在pr中看到的,您也可以(至少)对broker config使用此选项。
另请注意,此选项当前在中不存在 kafka-topics 客户端。

8e2ybdfx

8e2ybdfx2#

您可以使用此命令获取有关网络上所有主题列表的信息

bin/kafka-topics.sh --list --zookeeper localhost:2181

对于每个主题,您都可以通过以下方式获得信息:

bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test

Kafka文献:
下面是对输出的解释。第一行给出了所有分区的摘要,每一行提供了关于一个分区的信息。因为这个主题只有一个分区,所以只有一行。
“leader”是负责给定分区的所有读写操作的节点。每个节点将是随机选择的分区部分的领导者。
“replicas”是复制此分区的日志的节点列表,而不管它们是领导者还是当前处于活动状态。
“isr”是一组“同步”副本。这是副本列表的子集,该列表当前处于活动状态,并已被领导者捕获。

qni6mghb

qni6mghb3#

至少对于较新版本的kafka,您还可以通过以下命令查询特定于主题的属性:

bin/kafka-configs.sh --describe --zookeeper localhost:2181 --entity-type topics --entity-name test

相关问题