gpt4 book ai didi

cassandra - 恰好一次和至少一次保证之间的区别

转载 作者:行者123 更新时间:2023-12-04 00:04:22 27 4
gpt4 key购买 nike

我正在研究分布式系统并引用了这个老问题:stackoverflow link

我真的无法理解恰好一次、至少一次和最多一次保证之间的区别,我也在 Kafka、Flink、Storm 和 Cassandra 中阅读了这些概念。例如有人说 Flink 更好,因为它有恰好一次的保证,而 Storm 只有至少一次。

我知道完全一次模式对延迟更好,但同时它对容错能力更差,对吗?如果我没有重复,如何恢复流?然后......如果这是一个真正的问题,为什么只一次保证被认为比其他保证更好?

有人可以给我更好的定义吗?

最佳答案

以下定义引自 Akka文档

最多一次 送货

means that for each message handed to the mechanism, that message is delivered zero or one times; in more casual terms it means that messages may be lost.



至少一次 送货

means that for each message handed to the mechanism potentially multiple attempts are made at delivering it, such that at least one succeeds; again, in more casual terms this means that messages may be duplicated but not lost.



恰好一次 送货

means that for each message handed to the mechanism exactly one delivery is made to the recipient; the message can neither be lost nor duplicated.



第一个是最便宜的——最高的性能,最少的实现开销——因为它可以以即发即忘的方式完成,而无需在发送端或传输机制中保持状态。第二个需要重试以应对传输丢失,这意味着在发送端保持状态并在接收端具有确认机制。第三个是最昂贵的——因此性能最差——因为除了第二个之外,它还需要在接收端保持状态以过滤掉重复的交付

关于cassandra - 恰好一次和至少一次保证之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44204973/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com