(一)生产者生成数据的数据,按自定义key做hashcode进行分区

1.Kafka中可以将Topic从物理上划分成一个或多个分区(Partition)

  每个分区在物理上对应一个文件夹,以"topicName_partitionIndex"方式命名

  文件夹下存储这个分区的所有消息(.log)索引(.index)文件

# 例如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接口的类