搜索

4.7. 恢复失败以避免数据丢失

download PDF

如果消费者组中的故障,Kafka 提供了一个重新平衡协议,用于有效检测和恢复。为最大程度降低这些故障的潜在影响,一个关键策略是调整 max.poll.records 属性,以平衡高效处理与系统稳定性。此属性决定了消费者可在单个轮询中获取的最大记录数。微调 max.poll.records 有助于维护受控的消耗率,防止消费者不认为自己或 Kafka 代理。

另外,Kafka 还提供高级配置属性,如 session.timeout.msheartbeat.interval.ms。这些设置通常为更具体的用例保留,在标准场景中可能不需要调整。

session.timeout.ms 属性指定消费者可以在不向 Kafka 代理发送心跳的情况下可以进入的最大时间,以指示它在消费者组中处于活跃状态。如果消费者无法在会话超时内发送心跳,则被视为不活跃。标记为 inactive 的消费者会触发主题对分区的重新平衡。设置 session.timeout.ms 属性值太低,可能会导致误报结果,而设置得太高可能会导致从故障中恢复。

heartbeat.interval.ms 属性决定了消费者向 Kafka 代理发送心跳的频率。连续心跳之间有一个较短的间隔,可以更快地检测消费者故障。heartbeat 间隔必须较低,通常由第三个,而不是会话超时。减少心跳间隔可减少意外重新平衡的几率,但更频繁的心跳会增加代理资源的开销。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.