Kafka生产者的消息分区策略

2020-02-28  本文已影响0人  JengCode

问题:有哪些分区策略/分区算法?

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

1. 轮询策略/顺序分配(默认分区策略)

优点:可以提供非常优秀的负载均衡能力,可以保证消息被平均分配到所有分区上。
缺点:无法保证消息的有序性。

轮询策略.png
2. 随机策略

优点:消息的分区选择逻辑简单。
缺点:负载均衡能力一般,也无法保证消息的有序性

随机策略.png
3. hash策略(如果指定了key,默认分区策略为hash策略)

kafka允许为每条消息定义消息key,可以根据key来为消息选择分区。

优点:可以保证相同key的消息被发送到相同的分区,因此可以保证相同key的所有消息之间的顺序性。
缺点:可能会产生数据倾斜 —— 取决于数据中key的分布,以及使用的hash算法。

hash策略.png
上一篇下一篇

猜你喜欢

热点阅读