更多的时刻,分布式事务只须要包管原子性,这个原子性也包管了应用层面上的一致性,而由本地事务来包管隔离性、持久性。
在分布式范畴,因为收集或者机械故障,经常须要重试,是以幂等性异常重要
在笔者的营业范畴,并没有涉及到强一致性的场景,只要最终一致性就行了。膳绫擎的提到的各类办法,不管是2PC、TCC、本地消息表、事务消息,都须要惹人额外的框架或者组件。所以更多的时刻是采取营业补偿的方法,比如一个涉及两个过程的操作须要包管原子性,过程间RPC通信,那么一般是A过程先履行,然后RPC调用B过程接口,根据B过程的返回结不雅,绝对是否回滚(补偿);但如不雅涉及到异步RPC、或者多线程、或者两个以上过程的串联时,那么就不必定能补偿、甚至很难补偿了,这个时刻只记录一个error log,然后通知人工排查。是以,事务补偿只合适营业比较简单的常见,并且很难形成通用的框架,或者说实用性不强。
之前一向认为像银行转账这种场景,必定是强一致性的。后来本身碰到这么一回事,我给同伙转账,我这边显示转账成功,但同伙并没有收到钱。我认为是须要一准时光,结不雅24小时之后还没有收到。我本身从新比对转账单,才发明是把对方的开户银行写错了。是以可见,转账这个操作肯定不是强一致性,具体怎么搞的在网上也没有查到。更坑爹的是,转账掉败,我的钱被扣了,同伙也没有收到钱,然则我没有收到任何消息,也没有给我把钱退回来,在我打德律风到银行去咨询之后才退回来。这个别验真的很差,但银行是大年夜爷,没办法!
【编辑推荐】
- 浅析将来大年夜数据的成长趋势
- 2017年的三大年夜数据保护趋势
- 对大年夜数据和人工智能的冷思虑
- 基于大年夜数据的┞服府情况决定计划才能扶植
- 看大年夜数据、共享经济若何加快改变中国
推荐阅读
沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 这篇文┞仿只须要你10分钟的时光。什么是Zookeeper?固然zookeeper的实现比较复杂,然则它供给的模型抽象倒是>>>详细阅读
本文标题:从银行转账失败到分布式事务:总结与思考
地址:http://www.17bianji.com/lsqh/38129.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示