登录
登录 注册新账号
注册
已有账号登录
kafka笔记:kafka生产者消息投递分区策略
SivaCoHan 阅读 32 次
6 天前发布

分区原因:

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投递分区。

©著作权归作者所有:来自51CTO博客作者hgditren的原创作品,如需转载,请注明出处,否则将追究法律责任