(一)生产者生成数据的数据,按自定义key作hashcode进行分区bash
1.Kafka中能够将Topic从物理上划分红一个或多个分区(Partition)ide
每一个分区在物理上对应一个文件夹,以"topicName_partitionIndex"方式命名spa
文件夹下存储这个分区的全部消息(.log)和索引(.index)文件code
# 例如Topic:test0320,使用了3个分区,2个副本 186 187 188 ---------- ---------- ---------- test0320-0 test0320-0 test0320-1 test0320-2 test0320-1 test0320-2
2.生产者在生产数据的时候,能够为每条消息自定义Key规则,这样消息被发送到broker时,会根据分区规则选择被存储到哪个分区中索引
3.分区规则就是实现了kafka.producer.Partitioner接口的类接口