如何从命令行或其他方式获取默认的Kafka配置全局和每个主题?
我知道Broker Configs上可以使用默认值,你可以使用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
Run Code Online (Sandbox Code Playgroud)
仅供参考,我刚开始使用kafka v0.9.0.1.
显然,有一个讨论为什么这是不可能的,所以我想没有解决方案.
小智 12
从 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={}
Run Code Online (Sandbox Code Playgroud)
正如您在PR 中看到的,您也可以将此选项用于(至少)代理配置。
另请注意,当前CLI中不存在此选项kafka-topics。
小智 6
您可以使用此命令获取有关网络上存在的所有主题列表的信息。
bin/kafka-topics.sh --list --zookeeper localhost:2181
Run Code Online (Sandbox Code Playgroud)
对于每个主题,您可以通过以下方式获取信息:
bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
Run Code Online (Sandbox Code Playgroud)
从Kafka文档中:
这是输出的说明。第一行给出了所有分区的摘要,每一行都给出了有关一个分区的信息。由于该主题只有一个分区,因此只有一行。
- “领导者”是负责给定分区的所有读取和写入的节点。每个节点将成为分区的随机选择部分的领导者。
- “副本”是为该分区复制日志的节点列表,无论它们是引导者还是当前处于活动状态。
- “ isr”是“同步”副本的集合。这是副本列表的子集,当前仍处于活动状态并追随领导者。
至少对于较新版本的Kafka,您还可以通过以下命令查询特定于主题的属性:
bin/kafka-configs.sh --describe --zookeeper localhost:2181 --entity-type topics --entity-name test
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22998 次 |
| 最近记录: |