分布式事务
mischen520
JAVA高级架构师
展开
-
事务的并发问题
1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致3、幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。小结:不可重复读的和幻读很容易混淆,不可重复读侧重于修改,幻读侧重原创 2021-09-10 00:01:14 · 118 阅读 · 0 评论 -
zookeeper实现分布式锁的原理?
1.客户端对某个方法加锁时,在 zk 上的与该方法对应的指定节点的目录下,生成一个唯一 的瞬时有序节点 node1; 2.客户端获取该路径下所有已经创建的子节点,如果发现自己创建的 node1 的序号是最小 的,就认为这个客户端获得了锁。 3.如果发现 node1 不是最小的,则监听比自己创建节点序号小的最大的节点,进入等待。4.获取锁后,处理完逻辑,删除自己创建的 node1...原创 2020-03-28 11:00:07 · 601 阅读 · 0 评论 -
分布式事务-事务上下文代码实现
package org.mengyun.tcctransaction.utils;import org.mengyun.tcctransaction.common.MethodType;import org.mengyun.tcctransaction.api.TransactionContext;/** * 可补偿方法工具类. * Created by changmingxie...原创 2020-02-10 11:01:03 · 708 阅读 · 0 评论 -
TCC补偿切面核心代码实现
package org.mengyun.tcctransaction.spring;import org.apache.log4j.Logger;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Around;import org.aspectj.lang.annotation...原创 2020-02-10 10:51:59 · 284 阅读 · 0 评论 -
分布式事务的解决方案以及应用场景
常用的分布式事务解决方案:- 可靠消息最终一致(异步确何型) - TCC (两阶段型、补偿型) - 最大努力通知(非可靠消息 、定期校对)三种解决方案均是基于柔性事务实现最终一致性。异步消息确保型方案,基于MQ中间件实现,或者说是对MQ不支持分布式事务进行的改进,使用场景比较广,适合于对实时性要求不高的应用场景。TCC事务补偿型方案,采用两阶段实现,但有...原创 2020-02-10 10:47:05 · 868 阅读 · 0 评论 -
tcc总配置文件详解
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://ww...原创 2020-02-10 10:26:55 · 367 阅读 · 0 评论 -
tcc分布式事务源码分析
直接上github参照源码学习,学习地址https://github.com/changmingxie/tcc-transaction原创 2020-02-09 14:42:07 · 203 阅读 · 0 评论