Apache kafka 在kafka中是否有任何api可以找到分区是否平衡

Apache kafka 在kafka中是否有任何api可以找到分区是否平衡,apache-kafka,Apache Kafka,是否存在任何API或客户端库,可以告诉我主题中填充了多少数据,这样我就可以找出是否有任何方法可以检查分区是否平衡假设您创建了一个主题X。您的制作人开始向您的主题中推送大量数据。你的话题正以指数级增长。根据配置log.segment.bytes,卡夫卡将创建一个新段并开始向其中写入数据。旧段将保留log.retention.ms毫秒。正因为如此,100%的主题本身是很难计算的 但是,如果您正在寻找一种可以根据每个代理上的负载分配分区的工具,那么我建议您研究Kafka工具包()。在设计和开发Kafk

是否存在任何API或客户端库,可以告诉我主题中填充了多少数据,这样我就可以找出是否有任何方法可以检查分区是否平衡

假设您创建了一个主题X。您的制作人开始向您的主题中推送大量数据。你的话题正以指数级增长。根据配置log.segment.bytes,卡夫卡将创建一个新段并开始向其中写入数据。旧段将保留log.retention.ms毫秒。正因为如此,100%的主题本身是很难计算的


但是,如果您正在寻找一种可以根据每个代理上的负载分配分区的工具,那么我建议您研究Kafka工具包()。

在设计和开发Kafka之前,这是一个很好的策略

第一点,你需要考虑如何定义你的密钥,以及你打算使用什么样的精确分区,同时对主题产生消息。 经验法则:

  • 如果您不想根据密钥在不同的组中收集消息,只需将密钥作为null传递,以循环方式重新分发消息
  • 您还可以使用自定义分区器来定义分区,以防需要进行进一步的细化
  • 要检查分区分布,最好的方法是检查每个分区上的延迟和字节/秒的速率

    有很多方法可以监控

    1.您可以使用简单的API获得各种矩阵,如滞后、速率等

    你可以在这里查阅

    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
    
  • 您还可以通过编程方式处理

  • Confluent Control Center是一个付费的工具,但它是一个非常有趣的工具,用于监控整个卡夫卡,包括消费者及其分区/


  • 我不是在寻找一个工具,它可以根据每个代理上的负载分配分区,而是我想使用一些脚本或通过生产者发送的任何程序(键、值)+消息中的更多内容来查找当前分区或主题容量。密钥可以是customerId。将一个客户的所有数据放在一个分区中可以使设计更加可靠。现在,假设partitionX托管在hostA上,并且它超载了,那么生产者不应该试图变得聪明,开始向partitionY发送消息。如果hostA过载并关闭,则Kafka将开始使用同步副本。
    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