返回介绍

Q&A 什么是 end to end exactly once?

发布于 2024-05-19 13:42:11 字数 2182 浏览 0 评论 0 收藏 0

[Q] 什么是 end-to-end exactly-once ?

[A] 一般我们把上游数据源 (Source) 看做一个 end,把下游数据接收 (Sink) 看做另一个 end:

 Source  -->  Spark Streaming  -->  Sink
 [end]                             [end]

目前的 Spark Streaming 处理过程自身是 exactly-once 的,而且对上游这个 end 的数据管理做得也不错(比如在 direct 模式里自己保存 Kafka 的偏移),但对下游除 HDFS 外的如 HBase, MySQL, Redis 等诸多 end 还不太友好,需要 user code 来实现幂等逻辑、才能保证 end-to-end 的 exactly-once。

而在 Spark 2.0 引入的 Structured Streaming 里,将把常见的下游 end 也管理起来(比如通过 batch id 来原生支持幂等),那么不需要 user code 做什么就可以保证 end-to-end 的 exactly-once 了,请见下面一张来自 databricks 的 slide[1]:

end-to-end exactly-once

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文