分布式消息服务KAFKA版-业务数据不均衡处理建议:方案概述

时间:2025-02-26 14:18:20

方案概述

Kafka将Topic划分为多个分区,所有消息分布式存储在各个分区上。每个分区有一个或多个副本,分布在不同的Broker节点上,每个副本存储一份全量数据,副本之间的消息数据保持同步。Kafka的Topic、分区、副本和代理的关系如下图所示:

在实际业务过程中可能会遇到各节点间或分区之间业务数据不均衡的情况,业务数据不均衡会降低Kafka集群的性能,降低资源使用率。

业务数据不均衡原因

  • 业务中部分Topic的流量远大于其他Topic,会导致节点间的数据不均衡。
  • 生产者发送消息时指定了分区,未指定的分区没有消息,会导致分区间的数据不均衡。
  • 生产者发送消息时指定了消息Key,按照对应的Key发送消息至对应的分区,会导致分区间的数据不均衡。
  • 系统重新实现了分区分配策略,但策略逻辑有问题,会导致分区间的数据不均衡。
  • Kafka扩容了Broker节点,新增的节点没有分配分区,会导致节点间的数据不均衡。
  • 业务使用过程中随着集群状态的变化,多少会发生一些Leader副本的切换或迁移,会导致个别Broker节点上的数据更多,从而导致节点间的数据不均衡。
support.huaweicloud.com/bestpractice-kafka/Kafka_bp_0008.html