flink 两阶段提交协议 2pc

1、pre-commit阶段:当checkpoint barrier在所有operator都传递了一遍且对应的快照也都成功完成之后,这个pre-commit阶段才算完成。该过程中所有创建的快照都被视为是checkpoint的一部分。此时我们说checkpoint就是整个应用的全局状态,当然也包含pre-commit阶段提交的外部状态。当出现崩溃时,我们可以回滚状态到最新已成功完成快照时的时间点。整个过程为预提交阶段

2、commit阶段:下一步就是通知所有的operator,告诉它们checkpoint已成功完成。这便是两阶段提交协议的第二个阶段:commit阶段。该阶段中JobManager会为应用中每个operator发起checkpoint已完成的回调逻辑。

3、两阶段提交,最核心是要上下游都要支持事务,否则消费的数据不能重新消费或者写入的数据不能撤回。比如上游kafka天然支持重新读取数据,下游kafka开启幂和事务保证数据不重复 等操作。因为redis不支持写入事务,所以不能保证精准一次

4、mysql相关的两阶段提交代码 https://blog.51cto.com/simplelife/2401521

 

https://www.dazhuanlan.com/2020/03/23/5e788dc5c786c/?__cf_chl_jschl_tk__=7a0d8a8dbfa3f226d3643928fa62d00c681a59ec-1609407060-0-AfVEiXUt4YDdYSIdJM24zkngKlzJTpYDBlYpV2qU9GA4_RXnzYnDdP9zvw5dP95_UmJvA_8ovIrH7DkmuXSzz2hgvIsOFlQu7GnapIrEhPtaLSWf4ALrZh3T_3ZvgwRuM1xeuAV-1mPBEnVHqEUFp5l3D0kb-LjcjuA55ZxkQ-dstLQumKPNscUDxa9tSyMkUGHfCpt1Q3rTkrKymUxrPvciv7KgddCO3SvdfrHfnmcfkwmCpWvzsOQ5NNLdvEBSsYXYFsTYkj88_d8UuuuhXqqT-yqge7Bh-0eihytokwS8Wu2WDkICpaDnnQvbgnVJ0Ro88aGPQN7gcNYEWPtypGc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值