kafka指标说明及使用命令

1.kafka的指标说明
在这里插入图片描述
Brokers Spread:看作broker使用率,如kafka集群9个broker,某topic有7个partition,则broker spread: 7 / 9 = 77%
在这里插入图片描述
Brokers Skew:partition是否存在倾斜,如kafka集群9个broker,某topic有18个partition,正常每个broker应该2个partition。若其中有3个broker上的partition数>2,则broker skew: 3 / 9 = 33%
在这里插入图片描述
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所有读写都在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负数。
如下图:
在这里插入图片描述
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_part1_replica1 : broker_id_for_part1_replica2,
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 如果使用这个选项,那么会执行真实的重新分配分区的操作。如果不指定这个选项,默认会进行模拟执行。
例子如下图所示。
在这里插入图片描述
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 。
例子如下图所示。
在这里插入图片描述
6.从一个Topic读消息,把消息重放到另一个Topic 。命令格式如下:
bin/kafka-replay-log-producer.sh
–async 如果设置该选项,则异步发送消息
–batch-size <Integer: batch size> 每次批量发送的消息数,默认值200
–broker-list hostname:port 指定broker列表,格式host:port
–compression-codec <Integer: compression docec> 如果设置该选项,则消息经过压缩后再发送,默认值0。(0:none, 1:gizp, 2:snappy)
–delay-btw-batch-ms<Long: ms> 两次批量发送的间隔时间,默认值0
–inputtopic 消息消费的源Topic
–messages <Integer: count> 需要发送的消息数,默认值-1,即发送所有消息
–outputtopic 消息发送至的目标Topic
–reporting-interval <Integer: size> 打印过程信息的时间间隔,默认值5000
–threads <Integer: 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
例子如下图所示。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要安装和使用Kafka,可以按照以下步骤进行操作: 1. 下载和解压Kafka: - 访问Apache Kafka官方网站:https://kafka.apache.org/downloads - 选择合适的Kafka版本并下载压缩包(通常为`.tgz`文件) - 解压下载的文件到指定目录,例如 `/opt/kafka` 2. 配置Kafka: - 进入Kafka解压目录,编辑`config/server.properties`文件 - 修改`advertised.listeners`属性为您的Kafka服务器的主机名和端口,例如 `PLAINTEXT://localhost:9092` - 其他配置项如需要,可以根据需求进行修改 3. 启动Zookeeper: - Kafka依赖于Zookeeper来管理集群状态,因此需要先启动Zookeeper - 进入Kafka解压目录,执行命令:`bin/zookeeper-server-start.sh config/zookeeper.properties` 4. 启动Kafka服务: - 打开一个新的终端窗口,进入Kafka解压目录,执行命令:`bin/kafka-server-start.sh config/server.properties` 5. 创建Topic: - 打开另一个终端窗口,进入Kafka解压目录 - 执行命令创建一个名为 `test_topic` 的Topic:`bin/kafka-topics.sh --create --topic test_topic --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1` 6. 发送和接收消息: - 发送消息:执行命令 `bin/kafka-console-producer.sh --topic test_topic --bootstrap-server localhost:9092`,然后在控制台中输入消息并按Enter发送 - 接收消息:执行命令 `bin/kafka-console-consumer.sh --topic test_topic --from-beginning --bootstrap-server localhost:9092`,将显示已发送的消息 这只是Kafka的基本安装和使用方法,您可以根据实际需求进一步了解和配置。希望对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值