Kafka消费传递语义
Kafka消费传递语义的三种类型
-
At Most Once 最多一次:
- 消息可能会丢失,但不会被重复消费
- 适用于对消息丢失不敏感的场景
-
At Least Once 至少一次:
- 消息不回丢失,但可能会被重复消费
- 适用于对消息丢失敏感,但是可以容忍重复消费的场景
-
Exactly Once 精确一次:
- 消息既不会丢失,也不会被重复消费
- 适用于对消息丢失和重复消费都敏感的场景
当消费者组/消费者从 Kafka 消费数据时,仅支持最多一次和至少一次这两种语义。但是您可以通过选择适当的数据存储来实现类似于精确一次的交付语义,例如,任何键值存储、RDBMS(主键)、Elasticsearch或任何其他支持幂等写入的存储。