
分布式事务
头发还长的程序员
这个作者很懒,什么都没留下…
展开
-
分布式事务的产生
产生原因在微服务环境下,因为会根据不同的业务会拆分成不同的服务,比如会员服务,订单服务等,每个服务都有自己独立的数据库,互不影响。服务与服务之间通讯采用rpc远程调用技术,但是每个服务中都有自己独立的数据源,即自己独立的本地事务。两个服务通讯的时候,两个本地事务互不影响,从而出现分布式事务产生的原因。传统项目一般不会产生分布式事务,但是在项目中如果应用了多数据源方式,也会产生分布...原创 2019-09-08 11:32:48 · 219 阅读 · 0 评论 -
TX-LCN解决微服务分布式事务问题
前言上一篇文章写了微服务分布式事务问题的示例https://blog.youkuaiyun.com/daziyuanazhen/article/details/100825240这里在上一篇的代码基础上,引入TX-LCN框架解决分布式事务问题。TX-LCN框架原理创建一个事务协调者,事务的发起方创建一个事务组,会有一个组id,事务的参与方会加入事务组,当某个组成员发生异常的...原创 2019-09-14 16:38:19 · 656 阅读 · 0 评论 -
微服务分布式事务问题示例
前言本次示例的场景是下订单减库存。用到了springboot+springcloud+mybatis+mysql。数据库有订单表和库存表springboot整合mybatis和mysql的详细讲解可以看此博客https://blog.youkuaiyun.com/daziyuanazhen/article/details/100822121创建eurek...原创 2019-09-14 12:48:43 · 259 阅读 · 0 评论 -
JTA+Atomikos解决分布式事务问题
JTA分布式事务:Java Transaction API,允许应用程序执行分布式事务处理。Atomikos:为java平台提供增值服务并且开源的事务管理器。基于xa协议,xa协议是以两阶段提交协议为基础的。这种处理方案一般是针对传统架构项目的分布式事务,不适合用在微服务架构中。下面是springboot配置多个oracle数据源,重现分布式事务问题的例子一、添加依...原创 2019-09-10 17:43:24 · 786 阅读 · 0 评论 -
三阶段提交协议(3PC)
三阶段提交协议是两阶段提交协议的改进版本,它通过超时机制解决了阻塞的问题,并且把两个阶段增加为三个阶段。1.询问阶段:协调者询问参与者是否可以完成指令,协调者只需要回答是还是不是,而不需要做真正的操作,这个阶段超时导致中止。2.准备阶段:如果在询问阶段所有参与者都返回可以执行操作,协调者向参与者发送预执行请求,然后参与者写redo和undo日志,执行操作,但是不提交操作;如果在询问阶...原创 2019-09-09 21:45:42 · 445 阅读 · 0 评论 -
事务的ACID与隔离级别
定义事务是应用程序中一系列严密的操作,所有操作必须一起成功完成,否则在每个操作中进行的更改都会被撤销。ACID事务具有四个特征:1.原子性(Atomicity):事务是数据库的逻辑工作单位,事务中包含的各操作要么都完成,要么都不完成。2.一致性(Consistency):事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态,对于整个数据的完整性保持稳定。3...原创 2019-09-09 09:36:54 · 213 阅读 · 0 评论 -
两阶段提交协议(2PC)
第一阶段准备阶段:协调者向参与者发起指令,参与者评估自己的状态,如果参与者评估指令可以完成,则会写redo或者undo日志,然后锁定资源,执行操作,但并不提交。第二阶段如果每个参与者明确返回准备成功,则协调者像参与者发送提交指令,参与者释放锁定的资源,如果任何一个参与者明确返回准备失败,则协调者会发送终止指令,参与者取消已经变更的事务,释放锁定的资源。两阶段提交方案应...原创 2019-09-08 20:22:46 · 225 阅读 · 0 评论 -
柔性事务与刚性事务
区别柔性事务满足BASE理论(基本可用,最终一致)刚性事务满足ACID理论柔性事务分为1.两阶段型2.补偿型3.异步确保型4.最大努力通知型由于支付宝整个架构是SOA架构,因此传统单机环境下数据库的ACID事务满足了分布式环境下也业务需求,以上几种事务类似就是针对分布式环境下业务需要设定的。即分布式一般采用柔性事务。...原创 2019-09-08 19:41:59 · 849 阅读 · 0 评论 -
CAP理论与BASE理论
CAP(帽子原理)由于对系统或者数据进行了拆分,我们的系统不再是单机系统,而是分布式系统,针对分布式系统的CAP原理包含如下三个元素。C:Consistency,一致性。在分布式系统中的所有数据备份,在同一时刻具有同样的值,所有节点在同一时刻读取的数据都是最新的数据副本。A:Availability,可用性,好的响应性能。完全的可用性指的是在任何故障模型下,服务都会在有限的时间内处理完...原创 2019-09-08 14:15:07 · 211 阅读 · 0 评论 -
LCN5集群配置
前言LCN5.0版本与LCN4.0版本的集群配置方式有很大的区别。可以直接在官网上查看文档。目前这个时间点文档还是描述5.0版本的,可能以后会更新。https://www.txlcn.org/zh-cn/docs/setting/distributed.html以下是官网文档的截图。下边是本人观看文档之后的知识总结一、服务端(TxManag...原创 2019-09-17 15:42:51 · 789 阅读 · 0 评论