背景
Kafka是当下应用非常广泛的分布式消息系统,每秒可以生产约25万消息(50 MB),每秒处理55万消息(110 MB)。当Consumer的效率跟不上时,容易出现rebalance,导致系统系统挂起。
思路
1、调整session.timeout.ms、max.poll.interval.ms等参数,使心跳保持更久
2、增加partition和consumer的数量,使吞吐量提高
3、增加缓存,poll和consume分离
方案
不同场景,选择合适方案。
方案1,适合能预知最大消费时间的场景,若实际中无法判定consume的最大处理时间,pass。
方案2,常规方案,可与另外两个方案叠加使用。
方案3,适合各种场景。