你可以使用多线程消费时,采用内存队列,一条线程对应一个内存队列,将相同key的消息发往同一个内存队列中,这样可以确保多线程顺序消费了
但其实kafka无法保证严格的消费顺序,具体原因可以看下我写的一篇博客分析:
https://mp.weixin.qq.com/s/BaRAbk5Zeg9VhCQlhg6ACA
感谢博主分享这么宝贵的经验, 关于之前反应的问题,现在已经得到解决了, 之前遇到问题是采用的多线程消费方式为java线程池, 在打印日志的时候发现,一个线程会消费多个分区的数据, 后面摒弃了这种做法,尝试着使用SpringBoot提供的Kafka异步消费方式, 发现一个分区的所有数据仅由一个线程来消费,目前改进后的程序在实时处理时数据一致性得到了保证.