Seata

针对alibaba的分布式事务组件使用说明

半城伤御伤魂 提交于 2019-12-13 17:05:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 分布式事务应用搭建 系统采用alibaba系统的springcloud,分布式事务采用seata来进行管理,需要进行以下配置操作。 下列操作,都是针对centos7以上版本 linux进行的操作 安装nacos应用服务器 下载对应版本的nacos安装包,目前采用的是1.1.3 下载地址: https://github.com/seata/seata/releases 下载对应操作系统版本 nacos-server-1.1.3.tar.gz 将文件进行解压: Tar –zxvf nacos-server-1.1.3.tar.gz 注意:必须在安装jdk1.8以上版本上进行运行此应用 启动nacos命令 打开bin目录执行以下命令 ./startup.sh –m standalone(单机模式运行) 需要将8848端口进行开放 firewall-cmd --zone=public --add-port=8848/tcp --permanent firewall-cmd --reload 安装jdk 下载对应的jdk安装文件,目前采用的版本是1.8.0_232 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads

Seata AT 模式启动源码分析

别说谁变了你拦得住时间么 提交于 2019-12-12 19:54:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 从上一篇文章「 分布式事务中间件Seata的设计原理 」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分析 Seata AT 模式在启动的时候都做了哪些操作。 客户端启动逻辑 TM 是负责整个全局事务的管理器,因此一个全局事务是由 TM 开启的,TM 有个全局管理类 GlobalTransaction,结构如下: io.seata.tm.api.GlobalTransaction public interface GlobalTransaction { void begin() throws TransactionException; void begin(int timeout) throws TransactionException; void begin(int timeout, String name) throws TransactionException; void commit() throws TransactionException; void rollback() throws TransactionException; GlobalStatus getStatus() throws

讲清楚分布式事务选型:XA、2PC、TCC、Saga、阿里Seata

落爺英雄遲暮 提交于 2019-12-06 02:43:16
微服务兴起的这几年涌现出不少分布式事务框架,比如ByteTCC、TCC-transaction、EasyTransaction以及最近很火爆的Seata。最近刚看了Seata的源码(v0.5.2),借机记录一下自己对分布式事务的一些理解。(3年前这类框架还没成熟,因项目需要自己也写过一个柔性事务框架)。 本文分五部分,首先明确分布式事务概念的演变,然后简单说下为什么大家不用XA,第三部分阐述两阶段提交的“提升”,第四部分介绍Seata的架构的亮点与问题,第五部分谈下分布式事务的取舍。 限于篇幅一些网上可搜索的细节本文不展开阐述(例如XA、Saga、TCC、Seata等原理的的详细介绍)。 一、分布式事务的泛化 提起分布式事务,最早指涉及的是多个资源的数据库事务问题。 wiki对分布式事务的定义:A distributed transaction is a database transaction in which two or more network hosts are involved. 不过事务一词含义随着SOA架构逐渐扩大,根据上下文不同,可分为两类: System transaction; Business transaction。 前者多指数据库事务,后者则多对应一个业务交易。 与此同时,分布式事务的含义也在泛化,尤其SOA、微服务概念流行起来后,多指的是一个业务场景

专属福利,恒宇少年精心准备了3本自制电子小册

徘徊边缘 提交于 2019-12-05 16:33:13
电子小册 恒宇少年从2017年开始编写 SpringBoot 相关的技术性文章,2018年编写 SpringCloud 相关的技术性文章,到了2019年开始着手编写 ApiBoot 系列的开源框架以及 ApiBoot 内的各个组件使用文章,为了方便大家学习特意将之前的技术文章进行整理归档,合并为电子小册(PDF)的形式,现已合并归档的小册名称如下所示: 1.《SpringBoot核心技术 - 电子小册 - 恒宇少年版》 该电子小册目前从四个方面提供了技术文章,分别是: 基础配置 、 核心提升 、 效率编程 、 扩展使用 等。 由于之前编写的 SpringBoot 相关的技术文章所使用的版本为 1.5.x ,所以对于现在最新的 2.1.x 可能会有一些差异,不过核心的技术内容还是通用的,而且恒宇少年也在继续编写 2.1.x 版本的相关文章,会将新编写的文章陆续加入到本电子小册内,请根据电子小册的更新时间而定。 请关注「程序员恒宇少年」微信公众号后回复 101 获取电子小册的下载地址。 2.《SpringCloud核心技术 - 电子小册 - 恒宇少年版》 该电子小册介绍 SpringCloud 的各个组件使用,其中包含: 服务注册中心 、 GateWay(统一网关) 、 Nacos(阿里巴巴配置中心、服务注册中心) 、 Seata(阿里巴巴分布式事务) 等内容。 新更新相关

ShardingSphere x Seata,一致性更强的分布式数据库中间件

强颜欢笑 提交于 2019-12-03 07:49:08
日前,分布式数据库中间件 ShardingSphere 将 Seata 分布式事务能力进行整合,旨在打造一致性更强的分布式数据库中间件。 背景 数据库领域,分布式事务的实现主要包含:两阶段的 XA 和 BASE 柔性事务。XA 事务底层,依赖于具体的数据库厂商对 XA 两阶段提交协议的支持。通常,XA 协议通过在 Prepare 和 Commit 阶段进行 2PL(2 阶段锁),保证了分布式事务的 ACID,适用于短事务及非云化环境(云化环境下一次 IO 操作大概需要 20ms,两阶段锁会锁住资源长达 40ms,因此热点行上的事务的 TPS 会降到 25/s 左右,非云化环境通常一次 IO 只需几毫秒,因此锁热点数据的时间相对较低)。 但在 BASE 柔性事务方面,ShardingSphere 提供的接入分布式事务的 SPI,只适用于对性能要求较高,对一致性要求比较低的业务。 Seata 核心的 AT 模式适用于构建于支持本地 ACID 事务的关系型数据库。通过整合 Seata,其 AT 模式在一阶段提交+补偿的基础上,通过 TC 的全局锁实现了 RC 隔离级别的支持,可提高 ShardingSphere 的分布式事务的一致性。 整合方案 整合 Seata AT 事务时,需要把 TM,RM,TC 的模型融入到 ShardingSphere 分布式事务的 SPI 的生态中

分布式事务中间件Seata的设计原理

情到浓时终转凉″ 提交于 2019-12-01 23:34:21
微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 在微服务架构体系下,我们可以按照业务模块分层设计,单独部署,减轻了服务部署压力,也解耦了业务的耦合,避免了应用逐渐变成一个庞然怪物,从而可以轻松扩展,在某些服务出现故障时也不会影响其它服务的正常运行。总之,微服务在业务的高速发展中带给我们越来越多的优势,但是微服务并不是十全十美,因此不能盲目过度滥用,它有很多不足,而且会给系统带来一定的复杂度,其中伴随而来的分布式事务问题,是微服务架构体系下必然需要处理的一个痛点,也是业界一直关注的一个领域,因此也出现了诸如 CAP 和 BASE 等理论。 在今年年初,阿里开源了一个分布式事务中间件,起初起名为 Fescar,后改名为 Seata,在它开源之初,我就知道它肯定要火,因为这是一个解决痛点的开源项目,Seata 一开始就是冲着对业务无侵入与高性能方向走,这正是我们对解决分布式事务问题迫切的需求。因为待过的几家公司,用的都是微服务架构,但是在解决分布式事务的问题上都不太优雅,所以我也在一直关注 Seata 的发展,今天就简要说说它的一些设计上的原理,后续我将会对它的各个模块进行深入源码分析,感兴趣的可以持续关注我的公众号或者博客,不要跟丢。 分布式事务解决的方案有哪些? 目前分布式事务解决的方案主要有对业务无入侵和有入侵的方案

蚂蚁金服大规模分布式事务实践和开源详解 | GIAC 实录

感情迁移 提交于 2019-12-01 23:33:47
本文整理自蚂蚁金服技术专家、分布式事务 Seata 发起者之一张森(花名:绍辉)在 GIAC 全球互联网架构大会的分享。详细讲解了在分布式架构演进中,蚂蚁金服面对的跨服务、跨数据库的业务数据一致性问题以及应对措施,并分享了分布式事务 Seata 的 AT、TCC、Saga 和 XA 四种模式。 Seata: https://gitee.com/seata/seata 一、自研分布式事务解决数据一致性问题 1.1 分布式事务问题产生原因 1.1.1 数据库的水平拆分 蚂蚁金服的业务数据库起初是单库单表,但随着业务数据规模的快速发展,数据量越来越大,单库单表逐渐成为瓶颈。所以我们对数据库进行了水平拆分,将原单库单表拆分成数据库分片。 如下图所示,分库分表之后,原来在一个数据库上就能完成的写操作,可能就会跨多个数据库,这就产生了跨数据库事务问题。 1.1.2 业务服务化拆分 在业务发展初期,“一块大饼”的单业务系统架构,能满足基本的业务需求。但是随着业务的快速发展,系统的访问量和业务复杂程度都在快速增长,单系统架构逐渐成为业务发展瓶颈,解决业务系统的高耦合、可伸缩问题的需求越来越强烈。 如下图所示,蚂蚁金服按照面向服务(SOA)的架构的设计原则,将单业务系统拆分成多个业务系统,降低了各系统之间的耦合度,使不同的业务系统专注于自身业务,更有利于业务的发展和系统容量的伸缩。

讲清楚分布式事务选型:XA、2PC、TCC、Saga、阿里Seata

こ雲淡風輕ζ 提交于 2019-11-30 19:35:02
微服务兴起的这几年涌现出不少分布式事务框架,比如ByteTCC、TCC-transaction、EasyTransaction以及最近很火爆的Seata。最近刚看了Seata的源码(v0.5.2),借机记录一下自己对分布式事务的一些理解。(3年前这类框架还没成熟,因项目需要自己也写过一个柔性事务框架)。 本文分五部分,首先明确分布式事务概念的演变,然后简单说下为什么大家不用XA,第三部分阐述两阶段提交的“提升”,第四部分介绍Seata的架构的亮点与问题,第五部分谈下分布式事务的取舍。 限于篇幅一些网上可搜索的细节本文不展开阐述(例如XA、Saga、TCC、Seata等原理的的详细介绍)。 一、分布式事务的泛化 提起分布式事务,最早指涉及的是多个资源的数据库事务问题。 wiki对分布式事务的定义:A distributed transaction is a database transaction in which two or more network hosts are involved. 不过事务一词含义随着SOA架构逐渐扩大,根据上下文不同,可分为两类: System transaction; Business transaction。 前者多指数据库事务,后者则多对应一个业务交易。 与此同时,分布式事务的含义也在泛化,尤其SOA、微服务概念流行起来后,多指的是一个业务场景

等了 1 个多月,我就自己动手了

邮差的信 提交于 2019-11-29 08:14:22
Photo @ https://danielbachhuber.com/ 文 | 白科 有人问: 开源是为了什么? 这里有一些大家能在网上找到的参考答案。 从个人的视角看 参与开源 可以证明自己的 专业能力 并在行业内获得 认可 释放自己的 兴趣爱好 ⇣ 从企业的视角看 可以建立 技术影响力 对 招聘 、建立商业化 竞争优势 都有帮助 ⇣ 当然还有更 经济学的说法 开源作为一种 生产协作模式 大幅提升了商品的 生产效率和分发效率 阿里巴巴中间件 这一服务号 自去年6月15日发布第一篇文章开始 随着阿里巴巴的一系列微服务开源项目 一起成长 (点击了解成长之路) Dubbo Rocket MQ Sentinel Nacos Arthas Spring Cloud Aliabba Seata ChaosBlade ... 正如您第一次订阅我们时 接收到的自动回复 破土而出的生命力,源自理想主义者心底对技术的信念 我们 尝试把对技术的 情怀、实践 以文字的形式 进行表达和传播 由此聚集了不少的开发者 他们正通过这些开源项目构建自己的微服务架构 还有不少人加入社区, 参与 开源共建 让技术变得更好 为表感谢 2019 年 8 月 12 日 我们向 1349 位社区开发者送出了定制礼品 例如 这是来自 Seata 社区的通知邮件 同时 我们也采访了几位开源贡献者 看看他们是如何看待 开源的

等了 1 个多月,我就自己动手了

一世执手 提交于 2019-11-29 08:11:52
Photo @ https://danielbachhuber.com/ 文 | 白科 有人问: 开源是为了什么? 这里有一些大家能在网上找到的参考答案。 从个人的视角看 参与开源 可以证明自己的 专业能力 并在行业内获得 认可 释放自己的 兴趣爱好 ⇣ 从企业的视角看 可以建立 技术影响力 对 招聘 、建立商业化 竞争优势 都有帮助 ⇣ 当然还有更 经济学的说法 开源作为一种 生产协作模式 大幅提升了商品的 生产效率和分发效率 阿里巴巴中间件这一服务号 自去年6月15日发布第一篇文章开始 随着阿里巴巴的一系列微服务开源项目 一起成长 (点击了解成长之路) Dubbo Rocket MQ Sentinel Nacos Arthas Spring Cloud Aliabba Seata ChaosBlade ... 正如您第一次订阅我们时 接收到的自动回复 破土而出的生命力,源自理想主义者心底对技术的信念 我们 尝试把对技术的 情怀、实践 以文字的形式 进行表达和传播 由此聚集了不少的开发者 他们正通过这些开源项目构建自己的微服务架构 还有不少人加入社区, 参与 开源共建 让技术变得更好 为表感谢 2019 年 8 月 12 日 我们向 1349位社区开发者送出了定制礼品 例如 这是来自 Seata 社区的通知邮件 同时 我们也采访了几位开源贡献者 看看他们是如何看待 开源的