在Kafka中,当Consumer出现严重的数据积压(Lag)时,我们的优化目标会从“低延迟”转变为“高吞吐量”。为了以最快速度把积压数据拉取完并处理,不仅需要调整 和 ,还需要配合其他几个核心参数以及业务代码逻辑。 以下是具体的调整策略和原理解析: 1. 核心参数调整策略 🔹 (单次拉取最大记录数) 默认值:500 调整建议:调大至 2000 - 5000(甚至更高,取决于单条消息的大小)。 原理:增加每次 返回的消息数量,减少网络请求的次数和客户端拉取数据的额外开销,从而提升吞吐量。 ⚠️ 致命警告:一旦调大此参数,处理这批数据的时间必然变长。必须同步调大 (见下文),否则会导致Consumer处理超时,引发无限Rebalance(死循环:拉取 -> 处理超时 -> 踢出集群 -> 重新分配 -> 再次拉取相同数据)。 🔹 (单次拉取最小字节数) 默认值:1 调整建议:调大至 1MB - 10MB(例如 到 )。 原理:在没有积压时,调大它会增加延迟;但在有严重积压时,Broker端已经有大量数据就绪。调大该参数可以强制Consumer“攒够”一大批数据再通过网络传输,极...