【发布时间】:2023-03-31 13:21:01
【问题描述】:
是否存在任何 API 或客户端库可以告诉我有多少百分比的主题填充了数据,以便我可以弄清楚是否有任何方法可以检查分区是否平衡
【问题讨论】:
标签: apache-kafka
是否存在任何 API 或客户端库可以告诉我有多少百分比的主题填充了数据,以便我可以弄清楚是否有任何方法可以检查分区是否平衡
【问题讨论】:
标签: apache-kafka
这是在 Kafka 上进行设计和开发之前讨论的好策略。
您需要考虑的第一点是如何定义您的密钥,以及您在为主题生成消息时计划使用的分区器。
拇指规则:
要检查分区分布,最好的方法是检查每个分区的滞后和速率字节/秒
有很多方法可以监控
1.您可以使用简单的API来获取各种矩阵,如滞后、速率等
你可以参考这里Kafka Metrices
kafka.server:type=ReplicaFetcherManager,name=MaxLag,clientId=Replica
2.我通常更喜欢导出 JMX 的 Grafana,它会可视化矩阵
3.我们也可以通过CLI来识别每个分区的偏移和滞后,真正给你即时的整体图
bin/kafka-consumer-groups.sh --bootstrap-server broker1:9092 --describe --group consumer-group
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test 1 10 30 20 consumer-group
您也可以以编程方式处理 How to identify partition lagging
Confluent Control-Center 是一个付费但非常有趣的工具,用于监控整个 Kafka,包括消费者及其分区/ Confluent control center
【讨论】:
假设您创建了一个主题 X。您的生产者开始将大量数据推送到您的主题中。你的话题正在成倍增长。根据配置 log.segment.bytes,Kafka 将创建一个新段并开始向其中写入数据。旧段将保留 log.retention.ms 毫秒。因此,100% 的主题本身是难以计算的。
但是,如果您正在寻找一种可以根据每个代理上的负载分配分区的工具,那么我建议您研究 Kafka-kit (https://www.datadoghq.com/blog/engineering/introducing-kafka-kit-tools-for-scaling-kafka/)。
【讨论】: