对分布式事务的一些理解

来源:互联网 发布:matlab mac 2015b 编辑:程序博客网 时间:2024/06/06 01:06

随着分布式场景的应用越来越重要,在这里谈一些关于分布式事务的理解

1.既然是事务,毋庸置疑以下四点:

原子性、一致性、隔离性、持久性

2.简单的场景

拿最近的项目这里举例:

我们都知道当用户下单付款以后订单表会生成一条记录,同时库存是不是会变化呢?答案是会的,减去1(相应的数量这里举例1)

3.简单的概念

这里不讲具体的概念,只是通俗的理解

一个分布式事务
包括一个事务管理器和一个或多个资源管理器
一个资源管理器:是任意类型的持久化数据存储。
事务管理器:承担着所有事务参与单元者的相互通讯的责任。

两段提交协议
a)预提交阶段
     我们决定去旅游吧,先统计一下人数,组织者肯定会得到一个反馈,超过某个具体数字,也就是栈总体人数的80%,就可以组织这次活动,
而相对于分布式事务,那就是得到的这个反馈是100%,并且组织者有能力完成这次任务,那么才会有下一步的计划;
b)决策提交阶段
     当组织者计划完成,并且计划的人数到场一起出发了,计划完美的实施了。

4.实现方式

开源软件ATOMIKOS

那么有人会问不用他可以吗,那么

5.消息队列

流程就是还是转账案例吧

A给B转账N

怎么办

A-100 发出消息通知  B B收到 给A 回复 OK


但是怎么知道B接受到了几次消息呢

那么就是

B第一次接受到消息就进行记录 改变(数据库 字段)状态

每次接受消息时就查一次比较一下 做出相应的操作


以上只是简单的理解。


原创粉丝点击