💡
原文中文,约3300字,阅读约需8分钟。
📝
内容提要
介绍Spring-Kafka中的Ack模式选择,手动确认模式保证数据完整性但可能重复消费,自动确认模式可能丢失或重复消费,TIME_COUNT模式具有更强适应性,选择模式需考虑数据量和网络情况等因素。
🎯
关键要点
- 线上性能问题通过修改一行代码得到显著提升,反映配置对性能的影响。
- 对接腾讯云IOT平台,数据量增加导致消费性能瓶颈,出现数据拥堵。
- 单条kafka消息处理延迟主要在于向腾讯云发送ack的时间,物理距离限制了性能。
- 调整spring-kafka的AckMode配置,从MANUAL_IMMEDIATE改为MANUAL,显著提升处理速度。
- spring-kafka提供七种Ack模式,适用于不同场景。
- 手动确认模式(MANUAL和MANUAL_IMMEDIATE)可以保证数据完整性,但可能导致重复消费。
- 自动确认模式(RECORD、BATCH、TIME、COUNT、TIME_COUNT)可能导致数据丢失或重复消费。
- TIME模式定时确认,COUNT模式按条数确认,TIME_COUNT结合两者优点,适应性强。
- 选择Ack模式时需考虑数据量、网络情况等因素,手动模式适合不能容忍数据丢失的场景。
➡️