kafka指标说明及使用命令

1.kafka的指标说明
kafka指标说明及使用命令_第1张图片
Brokers Spread:看作broker使用率,如kafka集群9个broker,某topic有7个partition,则broker spread: 7 / 9 = 77%
kafka指标说明及使用命令_第2张图片
Brokers Skew:partition是否存在倾斜,如kafka集群9个broker,某topic有18个partition,正常每个broker应该2个partition。若其中有3个broker上的partition数>2,则broker skew: 3 / 9 = 33%
kafka指标说明及使用命令_第3张图片
Brokers Leader Skew:leader partition是否存在倾斜,如kafka集群9个broker,某topic14个partition,则正常每个broker有2个leader partition。若其中一个broker有0个leader partition,一个有4个leader partition,则broker leader skew: (4 - 2) / 14 = 14%
kafka指标说明及使用命令_第4张图片
由于kafka所有读写都在leader上进行, broker leader skew会导致不同broker的读写负载不均衡,配置参数 auto.leader.rebalance.enable=true 可以使kafka每5min自动做一次leader的rebalance,消除这个问题。
另一个比较关心的问题是Lag为什么有时是负数?
Lag代表consumer的消费能力,计算公式为Lag = Consumer Offset - LogSize,Kafka Manager先从zk获取LogSize,再从kafka __consumer_offsets topic读取Offset。两步操作存在一个时间gap,因此吞吐很大的topic上会出现Offset > LogSize的情况。导致Lag负数。
如下图:
kafka指标说明及使用命令_第5张图片
2.kafka常用指令:
1.创建Topic 。
关于创建主题,大家也可以去了解kafka的工作原理,创建主题的命令可用下面的命令操作。
bin/kafka-topics.sh
指定对topic的操作比如创建–create,查看topic为–list
–topic 指定topic的名字
–zookeeper 指定zookeeper的连接地址,格式为host:port
–partitions 指定partition的数量,默认为1
–replication-factor 指定partition的备份数,默认为1
–replica-assignment手动分配replica到broker上,格式为
broker_id_for_part2_replica1 : broker_id_for_part2_replica2, …>
下图为创建主题的两个例子。
在这里插入图片描述
在这里插入图片描述
3.重新分配partition ,可以采用下面的命令:
bin/kafka-reassign-partitions.sh
–zookeeper 指定zookeeper的连接地址,格式host:port
–broker-list 指定partition需要重新分配到哪些节点,格式为”0,1,2”
–topics-to-move-json-file 指定JSON文件的地址,文件内容是需要重新分配的topic列表。这个选项和manual-assignment-json-file选项需要指定其中
的一个。文件内容的格式为
{“topics”: [{“topic”: “test”},{“topic”: “test1”}], “version”:1 }
–manual-assignment-json-file 指定JSON文件的地址,文件内容是手动分配的策略。这个选项和topics-to-move-json-file选项需要指定其中的一个。文件内容的格式为
{“partitions”:
[{“topic”: “test”, “partition”: 1, “replicas”: [1,2,3] }], “version”:1 }
–status-check-json-file 指定JSON文件的地址,文件内容是partition和partition需要分配到的新的replica的列表。这个JSON文件可以从模拟执行的结果得到。
–execute 如果使用这个选项,那么会执行真实的重新分配分区的操作。如果不指定这个选项,默认会进行模拟执行。
例子如下图所示。
kafka指标说明及使用命令_第6张图片
5.手动均衡Topic,让partition选择preferred replica作为leader
bin/kafka-preferred-replica-election.sh
–zookeeper 指定zookeeper的连接地址,格式host:port
–path-to-json-file 指定需要重新进行leader选举的partition列表文件所在的地址,文件内容的格式为
{“partitions”: [{“topic”: “test”,“partitions”: 1},{“topic”: “test”, “partitions”: 2}]}
默认值为所有存在的partition 。
例子如下图所示。
kafka指标说明及使用命令_第7张图片
6.从一个Topic读消息,把消息重放到另一个Topic 。命令格式如下:
bin/kafka-replay-log-producer.sh
–async 如果设置该选项,则异步发送消息
–batch-size 每次批量发送的消息数,默认值200
–broker-list hostname:port 指定broker列表,格式host:port
–compression-codec 如果设置该选项,则消息经过压缩后再发送,默认值0。(0:none, 1:gizp, 2:snappy)
–delay-btw-batch-ms 两次批量发送的间隔时间,默认值0
–inputtopic 消息消费的源Topic
–messages 需要发送的消息数,默认值-1,即发送所有消息
–outputtopic 消息发送至的目标Topic
–reporting-interval 打印过程信息的时间间隔,默认值5000
–threads 发送消息的线程数,默认值1
–zookeeper 指定zookeeper的连接地址,格式host:port,默认值为127.0.0.1:2181
例子如下图所示。
在这里插入图片描述
7.查看Consumer的消费和积压信息。命令格式如下:
bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker
–broker-info 显示broker的信息
–group 必须,指定consumer group的名字
–topic 指定topic的名字
–zkconnect 必须,指定zookeeper的连接地址,格式host:port
例子如下图所示。
kafka指标说明及使用命令_第8张图片

你可能感兴趣的:(kafka)