系统分库之后的分布式事物实践解决方案

前言

本人目前就职于一家互联网支付公司,在公司这几年主要的工作是做支付账务这一模块。账务系统为了支撑上游高并发的业务请求,我们使用了分库分表的方式来提升系统性能,但是分库分表之后,随之而来的一个比较棘手的问题就是分布式事务的问题。正好最近正在准备公司内部的职级晋升申请答辩,所以这一次的晋升申请其中一个主题就是分布式事物。

1、事物的定义

说起分布式事务,得先从数据库事物说起,它是一组操作序列,要么都执行,要么都不执行,是一个不可分割的操作单位。数据库事物主要有以下四个特性

  • 原子性(Atomic):是指事物所包含的所有操作要么全部成功,要么全部失败回滚。
  • 一致性(Consistency):事物执行之前和执行之后状态必须是一致的,
  • 隔离性(Isolation):多个用户同时访问数据库时,数据库开启多个事物,不同事物的不能相互干扰,各自独立的执行。数据库主要有四个隔离级别:读未提交、读已提交、可重复读、串行化。
  • 持久性 (Durability):一个事物一旦被提交了,那么它在数据库中的改变是永久性的,即时数据库遇到故障也不会丢失提交事物的操作。
2、两阶段提交(2PC)

事物分为准备阶段和提交阶段,需要有事物参与者和事物协调器。

  • 第一个阶段:由事物协调器分别向参与者发送事物执行请求,并等待参与者反馈事物执行结果。事物参与者收到事物执行请求之后执行事物单不提交。参与者将事物执行结果反馈给事物协调器,同时阻塞等待协调器的下一步指令。
  • 第二个阶段:根据第一个阶段参与者的反馈会有三种情况,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值