**分区原因: **
1.提高负载能力。 2.提高读写并发能力。
-
[x] 副本leader负责读写,follower负责备份(选举出leader)
-
[x] 投递消息的分区策略 生产者发送消息的时候,会将消息数据封装成一个ProducerRecord对象。 ProducerRecord(…参数…..);
@NotNull string topic 主题 string类型部位空 integer partition 分区序号,如0,1,2 string key string value
**分为三种情况: **
- 指定partition分区序号,则直接将消息投递进指定序号的分区。
- 没有指定partition分区序号,指定了key的情况下。对key进行hash得到的值,跟topic的分区数量进行取模得到partition分区的值。如一个topic的分区数量为3,则hash(key)%3为消息投递的分区。
- 没有指定分区partition和没有指定key,则进行轮询RoundRobin投递分区。