
seata
seata 源码分析, 学习过程
东平王北星
Java底层,多线程,框架源码分析。
展开
-
Seata Server 整体流程
Seata Server 在分布式事务中, 担任事物协调者(TC)的角色TC 启动流程获取端口号,并设置到系统属性获取五大属性: 服务节点编号, 主机, 端口, 日志存储模式, seata环境变量初始化指标管理器创建NettyRemotingServer初始化 DefaultCoordinator注册应用程序关闭钩子由NettyRemotingServer初始化消息处理器开启超时检查调度启动服务将自己注册到注册中心TC处理流程消息处理器Seata Server 的消息处理器原创 2020-11-07 14:36:22 · 869 阅读 · 4 评论 -
Seata 注册中心
注册中心public interface RegistryService<T> { // 注册 void register(InetSocketAddress address) throws Exception; // 取消注册 void unregister(InetSocketAddress address) throws Exception; // 订阅 void subscribe(String cluster, T listener) th原创 2020-11-01 13:05:29 · 742 阅读 · 0 评论 -
Seata 配置中心
配置中心配置文件配置中心读取配置的流程选择配置文件, 例如registry.conf根据配置文件的文件类型选择基础配置通过基础配置进行驱动, 加载核心配置seata 在加载核心配置的时候, 会放到本地的 ConcurrentHashMap 缓存。 取值时可以分为三个级别:优先从缓存中获取从 System.getProperty 获取从配置中心获取如果取到值会存放到缓存中选择配置文件配置中心配置文件默认是: registry.conf , 可以通过系统属性(System.getP原创 2020-10-31 15:40:53 · 1484 阅读 · 3 评论 -
Seata AT模式的整体流程
AT模式的整体流程先从官网借一张图,简单描述AT模式的角色和流程Seata 目前有四种模式,都是基于 TC(事物协调者),TM(事物管理器),RM(资源管理器) 这三个角色完成的事务管理器发起全局事物通过RPC调用微服务A微服务A开启事物, 通过解析SQL,通过Druid数据源的API驱动快照的生成 。首先查询数据库获得当前数据的快照(前置镜像), 执行数据操作(更新,删除,插入), 查询数据库获得操作执行后的快照(后置镜像)微服务A向TC发起分支事物注册, 执行回滚日志的插入, 将当前事原创 2020-10-29 23:59:56 · 1880 阅读 · 0 评论 -
Seata 全局事物切面
Seata 的事物注解是 GlobalTransactional , 通常情况下,调用这个注解的方法是一个发起者。相比Spring定义的事物, 做了少量改动, 加入了事物名称和事物超时时间, 传播机制取消了嵌套类型(Propagation.NESTED)。public @interface GlobalTransactional { /** 事物名称, 必须唯一 */ String name() default ""; // 默认 60 秒超时 int timeoutM原创 2020-10-27 00:23:10 · 1120 阅读 · 0 评论 -
Seata SPI 机制
SPI 全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。JAVA SPI 机制本文不做讲解,自行了解。SEATA SPISeata 的 SPI 机制由类 EnhancedServiceLoader 提供 , 翻译一下就是: 增强服务载入器Seata 的SPI 是一个基础模块 ,对于Seata框架起着至关重要的作用, 熟悉了 Java SPI 机制后,Seat原创 2020-10-26 00:47:33 · 636 阅读 · 0 评论 -
Seata 协议编码
Seata 协议编码协议编码类: io.seata.core.rpc.netty.v1.ProtocolV1Encoder协议格式如下:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+原创 2020-10-25 19:35:27 · 499 阅读 · 0 评论