Kafka 消息积压是一种非常常见的问题,它通常作为一个面试中的难点来考察候选人。解决消息积压问题的思路有很多,这是其中一个。它和异步消费-批量提交的做法比起来更加容易刷亮点,因为你可以从这个案例的角度讨论到一般性质的使用批量接口来优化性能的做法。
这个案例你可以融合进去自己的性能优化方案里面,也可以作为自己的项目难点。
Kafka 有关的面试题你可以参考 Kafka 面试题集,里面有很多和 Kafka 消息积压的问题,包括不同原因引起的加压该如何解决。
这个方案对应的是 Kafka 中消息积压了怎么办 中的批量消费、批量提交,对应的代码在 interview-cases/case1_10/case9/batch_consumer.go at main · meoying/interview-cases (github.com).
批量消费其实很简单的,就是消费者不是每次都只取一条消息,而是取了一大批消息之后调用批量处理接口,一次性处理完毕。