所以我一直在阅读关于卡夫卡的一次语义,我对它的工作原理有点困惑。
我理解生产者如何避免发送重复消息(以防来自代理的确认失败),但我不明白的是,在消费者处理消息但在提交偏移量之前崩溃的情况下,exactly-once 是如何工作的。在这种情况下kafka不会重试吗?
我想你的意思是:
这是完全可能的。然而,对于 kafka 来说,只有一次“工作”,所有副作用(状态、输出)也必须进入同一个 kafka 集群。所以接下来会发生什么:
如果你在同一个 kafka 集群之外有副作用(比如你在 mysql 中插入一行而不是记录 Z),那么没有通用的方法可以让 kafka 一次性为你工作。您需要依靠老式的重复数据删除和幂等性。
归档时间: |
|
查看次数: |
1555 次 |
最近记录: |