Flink端到端一致性

本文讨论了流式计算中的At-Most-Once、At-Least-Once和Exactly-Once三种处理语义,强调在分布式环境中实现Exactly-Once的挑战。Flink通过上游数据可重放、状态保障和幂等输出来确保端到端一致性,具体措施包括使用持久化数据源、全局一致性快照和幂等输出策略。此外,文章提到了针对不支持幂等的输出端采用的特殊2PC事务机制。
摘要由CSDN通过智能技术生成

流式计算中,端到端表示从外部读取数据、中间处理、数据输出外部三个处理环节。在理想状态即7*24任务不出错或者异常情况下,也就是每一步处理都正常,那么就能保证最终处理输出的数据正确,但是在实际的情况中,可能会出现网络、磁盘、脏数据、OOM等各种异常导致程序失败,也就是端到端任何一个处理环节都有可能失败,为了保证最终数据的正确性,需要提供一种机制保障在面对任何情况的情况下,任务仍然恢复到正确的状态,也就是本篇要说的端到端的一致性。

c2ce8450abaebf47c432753e6e0617e2.png

流式计算三种处理语义

At-Most-Once

At-Most-Once 表示至多处理一次,在端到端的整个处理流程中,每一个环节至多会被处理一次,通常发生在某一个处理环节在出现失败导致异常的情况下,下游节点是无法获取到该节点的处理数据的,因为失败的数据不会被重试或者是恢复,所以是至多一次

At-Least-Once

At-Least-Once 表示至少处理一次,可能由于中间由于某个环节异常(处理消息异常、提交offset异常等) 导致消息被重复消费重新进入整个处理流程中

Exactly-Once

Exactly-Once 表示恰好处理一次,在端到端的整个流程中,消息只会被正确处理一次。

有没有真正的Exactly-Once?

Exactly-Once的处理语义需

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值