kafka当中的数据是有顺序的,只是说的是分区里面的顺序,每个分区里面的数据都是有顺序的
保证kafka当中的数据消费也是有序的,生产是有序的。
设置一个分区(相当于单机版),不建议使用;
producerRecode:
如果指定了分区号,直接将数据发送到指定的分区里面去;
如果没有指定分区号,数据带了发送的key,通过key取还是从的决定数据究竟发送到哪一个分区里面去;
如果既没有指定分区号,也没有指定数据key,使用round-robin fashion 轮询策略
如果使用key作为分区的依据,key一定要是变化的,保证数据发送到不同的分区里面去
总结-分区方式:
第一种:既没有指定key,也没有指定分区号,使用轮询的方式;
第二种:指定数据key,使用key的hashcode码值来进行分区,一定要注意,key要变化;
第三种:指定分区号来进行分区;
第四种:自定义分区策略。
面试题:
kafka五个分区:由于某种原因,0、1、2分区里面的数据太多,3、4分区里面的数据太少,