随着分布式场景的应用越来越重要,在这里谈一些关于分布式事务的理解
1.既然是事务,毋庸置疑以下四点:
原子性、一致性、隔离性、持久性
2.简单的场景
拿最近的项目这里举例:
我们都知道当用户下单付款以后订单表会生成一条记录,同时库存是不是会变化呢?答案是会的,减去1(相应的数量这里举例1)
3.简单的概念
这里不讲具体的概念,只是通俗的理解
一个分布式事务
包括一个事务管理器和一个或多个资源管理器
一个资源管理器:是任意类型的持久化数据存储。
事务管理器:承担着所有事务参与单元者的相互通讯的责任。
两段提交协议
a)预提交阶段
我们决定去旅游吧,先统计一下人数,组织者肯定会得到一个反馈,超过某个具体数字,也就是栈总体人数的80%,就可以组织这次活动,
而相对于分布式事务,那就是得到的这个反馈是100%,并且组织者有能力完成这次任务,那么才会有下一步的计划;
b)决策提交阶段
当组织者计划完成,并且计划的人数到场一起出发了,计划完美的实施了。
4.实现方式
开源软件ATOMIKOS
那么有人会问不用他可以吗,那么
5.消息队列
流程就是还是转账案例吧
A给B转账N
怎么办
A-100 发出消息通知 B B收到 给A 回复 OK
但是怎么知道B接受到了几次消息呢
那么就是
B第一次接受到消息就进行记录 改变(数据库 字段)状态
每次接受消息时就查一次比较一下 做出相应的操作
以上只是简单的理解。