前言
这篇写了kafka的几个比较复杂的特性
kafka消费策略
结论:
-
在同一个消费者组中,不同的线程在同一时间不能够处理同一分区中的数据,也就是说在同一时间一个线程只能消费一个分区数据
-
在不同的消费者里面,不同的线程在同一时间可以消费同一分区中的数据
-
多个线程在消费数据的时候,只能够保证
每一个分区内部有序(按照数据进入的先后),而全局是没有顺序的
。
可以极端一点,只设置一个分区,那么就保证全局有序,这个时候只有一个分区,跟对应kafka分布式框架理念相违背
kafka存储机制
Partition是以文件的形式存储在文件系统中,
比如,创建了一个名为 kafkatest 的topic,其有3个partition,那么在Kafka的数据目录中(由配置文件中的log.dirs指定的)中就会有这样3个目录: kafkatest-0,kafkatest-1,ka