分布式事务之最终一致性实现方案

本文来源:http://www.yu833.com/lx_huanqiu_com/

申博在线娱乐登入,  听说儿子还有一家店,李某的父亲便向那家店赶去,李红勃随即也通知这家店贴上“家长逼婚”的告示。图为全球拥有150万“猫粉”的明星大熊猫“思嘉”坐在雪地上啃食竹笋。昨夜今晨,在国内多个自媒体平台出现了一份落款为“云台山风景名胜区管理局”的“通报”,该“通报”显示:“姓名:翁某,男,67岁,上海人。  ■无锡:暂停对已有一套及以上住房的外地户籍家庭出售新房  无锡房地产开发企业不得向同一买受人出售多套商品住房;暂停对已拥有一套及以上住房的非无锡市户籍居民家庭出售新建商品住房。

  更让刘大爷头疼的是,自家大门门锁被人恶意破坏并不是头一次了,几个月前的大年初一和初三,也遭遇了同样的事情,随后,刘大爷从家中掏出了前两次被堵的锁芯,“前两次被堵了以后,我们才安的监控。  刀是谁呢?是老两口的养女严女士之子。  昨日北京儿童医院全面取消窗口现场挂号的消息发出后,有网友表示,“不能现场挂号了,不会用手机挂号的怎么办”?北青报记者了解到,为了更好地服务老弱病残及对新媒体挂号方式还不习惯的患者,市医院管理局同时要求,市属22家三甲医院应当在挂号大厅保留一个综合窗口,用于帮助老弱病残等患者进行挂号服务。王方奎Spyro:话糙理不糙,接地气,坦诚相待  妃爷在路上_:作为一名学生应该有自动去除不好的东西的能力很多话从老师口中说出来的不一定全对但是看的是自己怎么去感悟。

胳膊拧不过大腿,张伟屈从了,他按照对方写好的离婚协议书抄了两份,签了字后才脱身。这种蛋糕的设计灵感来源于新娘婚纱礼服。其实,这所学院既没有在教育部门注册,也没有办学许可证,属于非法办学。景区立即拨打120,由景区医护人员进行简单包扎后,小寨沟管理所所长薛杰等人协助急救人员,将游客送至修武县人民医院抢救,经诊治不治身亡。

前言

这篇文章是《关于分布式事务的理解》的后续篇:分布式事务之最终一致性实现方案。

还是那个电商需求,一个订单支付完成后的业务场景,有如下操作:

  1. 更改订单的状态为 “已支付”
  2. 扣减商品库存
  3. 给会员增加积分
  4. 创建出库单通知仓库发货

咱们使用 最终一致性方案 去实现它。

什么是最终一致性?

从字面上看就是 保证数据最后的一致性 就可以了。

为了减少系统代价,如果中间节点处理失败,其他节点一般不会自动回滚,而是通过重试机制和人工参与的方式对失败数据进行处理,从而来保证数据最后的一致性。

实现方案

使用 本地消息表 + 后台任务 + 消息队列 + 接口幂等性。

本地消息表:在对应业务数据库中增加的本地消息表,这张表存储业务产生的消息,通过 本地事务 保证业务数据和消息数据的一致性,比如:msg_publishedmsg_received 表示发布消息表和接收消息表,在消息表中会有一个状态来标识业务是否执行成功。

后台任务:当消息表中有执行失败的业务信息时,后台任务就会按照配置的重试策略进行重试,例如重试策略为当发送和消费消息的过程中失败会立即重试 3 次,在 3 次以后将进入重试轮询;重试将在发送和消费消息失败的 4分钟后 开始,这是为了避免设置消息状态延迟导致可能出现的问题;后续就会每隔 1 分钟之后重试一次,默认的最高重试次数为 50 次,当达到 50 次时,就不会重试了,通过发邮件/微信/钉钉/短信的方式通知人工去处理,通知时需要考虑消息降噪。

消息队列:跨服务之间的调用使用消息队列,来实现服务解耦。

接口幂等性:接口需要保证同一操作发起的一次请求或者多次请求的结果必须是一致的。

代码实现

推荐一个 C# 开源项目 申博在线娱乐登入CAP,大家可以参考一下。

这个项目只支持 C# 代码去集成,如果是其他语言可以参考其设计思路,然后进行一个简单的实现。

小结

本文纯属抛砖引玉,有问题,欢迎批评指正。

你有更好的实现方案吗?欢迎留言~

推荐阅读

作者:新亮笔记(关注公众号,可申请添加微信好友)
出处:/www_cnblogs_com/xinliangcoder
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

posted @ 2021-08-21 21:14  申博在线娱乐登入新亮笔记  阅读(623)  评论(0编辑  收藏  举报
申博手机版下载客户端 申博安卓手机下载登入 申博官网登录 太阳城申博娱乐直营网 申博现金直营网 申博开户
申博亚洲太阳城娱乐直营网 www.988msc.com 菲律宾申博官网注册 www.516sun.com 申博138直营网 申博官网娱乐城登入
太阳城申博娱乐直营网 申博会员开户 申博代理直营网 申博官网代理登入 申博游戏端下载 www.22sbc.com