如何从命令行或其他方式获取默认的Kafka配置全局和每个主题?
我知道默认值在Broker Configs上可用,您可以按主题获取#34;覆盖"使用describe,但是如果我对主题级别配置做了很多更改,那么获取所有值包括每个主题的覆盖都会很好。
$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
仅供参考,我刚开始使用kafka v0.9.0.1。
显然,有一个discussion about why this is not possible,所以我猜没有解决方案。
答案 0 :(得分:7)
自Kafka 2.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中所看到的,您也可以将此选项(至少)用于代理配置。
还请注意,kafka-topics
CLI中当前不不存在此选项。
答案 1 :(得分:4)
您可以使用此命令获取有关网络上所有主题列表的信息
bin/kafka-topics.sh --list --zookeeper localhost:2181
对于每个主题,您可以通过以下方式获得信息:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
以下是输出的说明。第一行给出了摘要 所有分区,每个附加行提供有关一个的信息 划分。由于我们只有一个分区用于此主题 只有一行。
- &#34;前导&#34;是负责给定分区的所有读写的节点。每个节点将成为随机选择的领导者 部分分区。
- &#34;复制品&#34;是复制此分区日志的节点列表,无论它们是否为领导者,或者即使它们也是如此 目前还活着。
- &#34; ISR&#34;是&#34;同步&#34;副本。这是副本列表的子集,该列表当前处于活跃状态并且已经被领导者抓住。
答案 2 :(得分:3)
至少对于较新版本的Kafka,您还可以通过命令查询主题特定属性:
bin/kafka-configs.sh --describe --zookeeper localhost:2181 --entity-type topics --entity-name test