03 kafka如何保证消息的顺序消费

vvEcho 2024-01-20 14:08:37
Categories: Tags:

首先,我们知道kafka的整个架构中,用到了partaion的分区机制,即一个topic会有多个分区,从而来实现消息的物理存储;

而生产者在发送消息的时候会跟据消息的key来进行取模来决定把当前的消息存储到那个分区中,而且消息是按照先后顺序存储到对应的partion中的

因为是多个分区,消费的时候通过一个balance机制去消费对应的分区中的消息,那么消息的消费顺序就不一定是按照消息的发送顺序来消费的;

对应的解决办法就是我们可以自定义消息生产的路由算法,让指定的key都路由到同一个分区,并且我们在我们消息消费的时候也可以

指定消费者去消费某一个分区里的数据,这样就可以保证消息的顺序消费;