exactlyOnce(精确一次):要求数据既不能丢失也不能重复。
producer幂等性:
Producer无论向Broker发送多少次重复数据,Broker端都只会持久化一条,保证了不重复。
重复数据的判断标准:具有<PID,Partition,SeqNumber>相同的主键的消息提交时,Broker只会持久化一条。其中PID是kafka每次重启都会重新分配。所以幂等性只能保证在单分区 单会话内不重复。
Producer事务:
当出现幂等性的缺陷无法解决的时候,可以考虑使用事务。事务可以支持多分区的数据完整性,原子性。并且支持跨会话的ExactlyOnce处理语义,如果producer宕机重启,依旧能保证数据只处理一次。
Kafak如何保证数据的ExactlyOnce
最新推荐文章于 2025-04-04 12:00:00 发布