kafka不保证整体有序的问题

kafka不保证整体(个Partition之间)有序,那是怎么知道Producer Push消息的时候是先往Partition01 Push,还是先往Partition02 Push? Consumer消费消息,是先从Partition01消费,还是先从Partition02消费?

fish - Hadooper

赞同来自:

Producer push的时候串行进行,消息放到哪个Partitioner由partition函数的策略决定,来一条消息,判断一下往哪个partition存放,放哪个partition跟顺序没什么关系。只不过一个partition中的消息的前后顺序,跟它们在producer中发送时的原有顺序保持不变。   在Consumer消费数据时,不论是采用轮询方式获取Partition中的数据或者取完一个再取一个的方式,都无法保证整体顺序与原来的一致。   比如原来消息是 1 3 5 6 7 8,分到两个Partition中形成P1:1 3 5 7,P2:6 8。Consumer在取的时候,如果是轮询取,出来的顺序就是 1 6 3 8 5 7;如果是一个partition一个partition取,就是 1 3 5 7 6 8。

要回复问题请先登录注册