spring-kafka中ContainerProperties.AckMode详解

spring-kafka中ContainerProperties.AckMode详解

💡 原文中文,约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模式时需考虑数据量、网络情况等因素,手动模式适合不能容忍数据丢失的场景。
➡️

继续阅读