深入浅出kafka原理-7-kafka生产者消息分区机制

生产者消息分区机制

图片

分区的作用就是提供负载均衡的能力,或者为了实现系统的高伸缩性(Scalability)

每个节点的机器都能独立地执行各自分区的读写请求处理;还可以通过添加新的节点机器来增加整体系统的吞吐量。

分区策略是决定生产者将消息发送到哪个分区的算法

  • 轮询策略(Round-robin)

深入浅出kafka原理-7-kafka生产者消息分区机制_第1张图片

  • Kafka Java 生产者 API 默认提供的分区策略,未指定partitioner.class参数则默认。轮询策略有非常优秀的负载均衡表现,它总是能保证消息最大限度地被平均分配到所有分区上,故默认情况下它是最合理的分区策略,也是我们最常用的分区策略之一。

  • 随机策略(Randomness)

深入浅出kafka原理-7-kafka生产者消息分区机制_第2张图片

  • 老版本生产者使用的随机策略,新版的已改为轮询

  • 根据Key分区

    Key 的作用非常大,可以是一个有着明确业务含义的字符串,比如客户代码、部门编号或是业务 ID 等。

深入浅出kafka原理-7-kafka生产者消息分区机制_第3张图片

你可能感兴趣的:(Kafka,kafka,java,分区表,负载均衡,大数据)