4.6. 恢复失败以避免数据丢失
使用 session.timeout.ms
和 heartbeat.interval.ms
属性配置在消费者组中的消费者故障时检查和恢复的时间。
session.timeout.ms
属性指定消费者组中的使用者可以在被视为不活跃前与代理联系,并在组中在活动消费者之间触发 重新平衡 的时间,以毫秒为单位。当组重新平衡时,分区会被重新分配给组的成员。
heartbeat.interval.ms
属性指定 heartbeat 检查到消费者组协调器之间的时间间隔(毫秒),以表示使用者处于活动状态和连接。heartbeat 间隔必须降低,通常要小于会话超时间隔。
如果将 session.timeout.ms
属性降低,之前检测到失败的消费者,重新平衡可能会更快进行。但是,务必不设置超时,以便代理无法及时接收 heartbeat,并触发不必要的重新平衡。
减少心跳间隔可减少意外重新平衡的机会,但更频繁的心跳会增加代理资源的开销。