flink 两阶段提交协议 2pc

本文探讨了两阶段提交协议在分布式系统中的应用,特别关注Kafka与MySQL如何配合实现数据一致性。Kafka支持数据回溯和幂等性,而MySQL通过事务处理确保精确性。博客还分享了MySQL相关代码实例,展示了在实际项目中的实现细节。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值