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