Kafka 如何保证消息消费的顺序性?
针对这个问题,一般的解决办法就是自定义消息分区路由的算法,然后把指定的 key都发送到同一个 Partition 里面。(如图)接着指定一个消费者专门来消费某个分区的数据,这样就能保证消息的顺序消费了。另外,有些设计方案里面,在消费端会采用异步线程的方式来消费数据来提高消息的处理效率,那这种情况下,因为每个线程的消息处理效率是不同的,所以即便是采用单个分区的存储和消费也可能会出现无序问题,针对这个问题的解决办法就是在消费者这边使用一个阻塞队列,把获取到的消息先保存到阻塞队列里面,然后异步线程从阻塞队列里面去获取消息来消费。

如有侵权请及时联系我们处理,转载请注明出处来自
随机推荐
科技快讯 |备案号:( 沪ICP备2026008940号-1 )