欢迎来到天天文库
浏览记录
ID:62106370
大小:1.91 MB
页数:61页
时间:2021-04-16
《最新分布式事务处理技术分享课件ppt.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、分布式事务处理技术分享课程内容事务特性及事务的隔离级别网络的不确定性问题幂等及实现方案rocketmq的消息一致性保障方案交易系统的分布式事务实践课程目标认识分布式事务在业务处理的时候知道怎么处理分布式事务事务的隔离级别---Readcommitted读提交读提交,只会锁定游标读取到的这一行事务的隔离级别---Repeatableread重复读事务的隔离级别---Repeatableread重复读实现原理事务的隔离级别---序列化微服务化改造引出的问题1.网络问题2.传统的ACID被打破2、网络的不确定性问题正常服务业务逻辑没有执行业务逻辑执行了,但是无响应3、幂等幂等概念
2、关键点1.幂等性是系统的接口对外一种承诺(而不是实现),承诺只要调用接口成功,外部多次调用对系统的影响是一致的。2.幂等的前提条件,针对一次业务处理3.标识业务处理的方法,业务ID幂等工作模型18幂等工作模型19接口幂等实现方案单独的去重表如果涉及到的去重的地方特别多,例如ERP系统中有各种各样的业务单据,每一种业务单据都需要去重,这时候,可以单独搞一张去重表,在插入数据的时候,插入去重表,利用数据库的唯一索引特性,保证唯一的逻辑。状态机幂等在设计单据相关的业务,或者是任务相关的业务,肯定会涉及到状态机,就是业务单据上面有个状态,状态在不同的情况下会发生变更,一般情况下存在
3、有限状态机,这时候,如果状态机已经处于下一个状态,这时候来了一个上一个状态的变更,理论上是不能够变更的,这样的话,保证了有限状态机的幂等。乐观锁和悲观锁使用乐观锁在数据表中间增加version字段,表行修改的时候count=updateASETversion=version+1whereversion=之前读取的值,当其中一个线程修改了数据行的时候版本号增加了,第二个修改的线程update返回的修改行数就是0了,这样就避免了并发修改问题,乐观锁的ABA问题?悲观锁UpdateAsetupdate_time=当前时间whereid=111andstatus=前置状态,hold
4、住这行,执行业务逻辑,UpdateAsetupdate_time=当前时间whereid=111andstatus=目标状态。死锁及死锁避免死锁事务1转账A到B,事务2转账B到A,就可能会发生死锁,当数据库操作需要同时持有两把锁的时候需要考虑死锁死锁避免持有锁是顺序的,上面的解决办法是先按账号排序,然后再一次锁定,就能避免死锁4、rocketmq的消息一致性方案实现方案一实现方案二5、分布式交易系统实践投保流程Schedule-app工作流程mq-app工作流程分布式事务实现重试(基于状态流程的JOB重试和MQ消息重复投递或者发送)逆操作(冻结操作和解冻操作,转账操作和退款
5、操作)实操作转换成虚拟操作(消息不是马上发出去,当业务成功的时候插入一条待发消息)两阶段提交(控制者保存任何时刻的状态)接口幂等事务协调者事务执行的步骤记录着,当出现不确定因素的时候,事务协调者负责重试或者资源释放,非本地事务都需要有事务协调者协调者约A和B去爬山,A回答说可以,协调者记录A同意,协调者再约B,B说不可以,那协调者要负责告诉A约会取消。当事务协调者磁盘坏了,就导致事务不知道运行到哪了,所以磁盘一般会使用RAID10,RAID5来避免磁盘单点问题事务参与者事务最小单元是本地事务协调者约A和B去爬山,A,B就是参与者重试次数限制当A调用B某一个有副作用接口重试了
6、几次还是不知道结果的时候,可能业务A就做失败处理,但是控制者A不知道B到底有没有做的问题处理:当A失败的时候,需要A有一个JOB去处理这种状态的任务,继续重试调用B,直到B有明确返回的时候,根据结果调用相应逆操作。两阶段提交两阶段提交谢谢!ThankYouVeryMuch!放射性肺炎(radiationpneumonitis)定义系由于肺癌、乳腺癌、食管癌、恶性淋巴瘤或胸部其他恶性肿瘤经放射治疗后,在放射野内的正常肺组织受到损伤而引起的炎症反应。症状多于放射治疗后2~3周出现症状症状轻者无症状,炎症可自行消散;重者肺脏发生广泛纤维化,导致呼吸功能损害,甚致呼吸衰竭。症状常有
7、刺激性、干性咳嗽、伴气急、心悸和胸痛,不发热或低热、偶有高热。症状气急随肺纤维化加重呈进行性加剧、容易产生呼吸道感染而加重呼吸道症状。并发放射性食管炎时出现吞咽困难。若放射损伤肋骨,产生肋骨骨折,局部有明显压痛。体征体检见放射部位皮肤萎缩、变硬,肺部可闻及干、湿罗音和摩擦音。肺部广泛、严重纤维化,最后导致肺动脉高压及肺源性心脏病,出现相应征象。病因放射性肺炎的发生、严重程度与放射方法、放射量、放射面积、放射速度均有密切关系。有认为放射量阈在3周内为2500~3000rad。诊断根据放射治疗史,干性呛咳,进行性气急和
此文档下载收益归作者所有