先回顾一下kafka的架构图
kafka分区的本质就是为了解决数据的写入和消费时的负载均衡以及数据的容错。
生产者将数据发送到kafka对应的主题,主题中存储数据是按分区存储的;同要消费者消费对应主题中的数据也是按分区消费的,在进一步思考,他是按怎么样的方式去分区的呢?这就是下面要说的kafka的分区策略问题。
该机制也决定了生产者如何将消息发送到指定的分区,以及消费者如何消费分区内的数据。
kafka生产者的分区策略
1 随机策略
2 轮询策略(kafka默认)
3 按照key的分区策略,Key-ordering
4 自定义分区策略,需要实现 org.apache.kafka.clients.producer.Partitioner
接口中的分区方法
kafka消费者的分区消费策略
1 Range Startegy(根据范围消费)
2 round-robin 消费者按照hash分区
备注