seata的使用 1. Seata 概述 Seata 是 Simple Extensible Autonomous Transaction Architecture 的简写,由 feascar 改名而来. Seata 是阿里开源的分布式事务框架,属于二阶段提交模式. 目前github上已经有 12267 颗星了,也很活跃,最新的提交时间很多都是几天前. Seata 有一个重要的机制:行锁+回滚日志. 每个分支事务对应的数据库中都需要有一个回滚日志表 UNDO_LOG,在真正修改数据库记录之前,都…
1.Seata 简介 1.1 Seata是什么 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案.AT模式是阿里首推的模式,阿里云上有商用版本的GTS(Global Transaction Service 全局事务服务). 1.2 Seata的三大角色 在Seata的架构中,一共有三大角色: TC(Transaction Coordinator)- 事务…
为什么会产生分布式事务? 随着业务的快速发展,网站系统往往由单体架构逐渐演变为分布式.微服务架构,而对于数据库则由单机数据库架构向分布式数据库架构转变.此时,我们会将一个大的应用系统拆分为多个可以独立部署的应用服务,需要各个服务之间进行远程协作才能完成事务操作.在微服务项目中通常一个大项目会被拆分为N个子项目,例如用户中心服务,会员中心服务,支付中心服务等一系列微服务,在面临各种业务需求时难免会产生用户中心服务中需要调用会员中心服务,支付中心服务而产生调用链路;服务与服务之间通讯采用RPC远程调…
在Spring Boot单体服务中,添加@Transactional注解就能实现事务.在单体服务中,执行事务都是在同一个数据库下进行.但是随着业务越来越复杂,数据量越来越大会进行分库分表.在微服务场景下,每个服务都有自己的数据库.之前的单体事务无法处理跨库的事务,这个时候就需要使用分布式事务. 前面 Seata 环境搭建 介绍了seata的安装,安装后就需要结合实战项目介绍分布式事务的应用. 版本 spring-cloud-starter-alibaba:2.1.1.RELEASE spring…
一,什么是事务(本地事务)? 指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 简单的说,事务就是并发控制的单位,是用户定义的一个操作序列.      而一个逻辑工作单元要成为事务,就必须满足ACID属性.     A:原子性(Atomicity)     事务中的操作要么都不做,要么就全做.    C:一致性(Consistency)    事务执行的结果必须是从数据库从一个一致性状态转换到另一个一致性状态.   I:隔离性(Isolation)    一个事务的执行…
前言 这是<Spring Cloud 进阶>专栏的第六篇文章,往期文章如下: 五十五张图告诉你微服务的灵魂摆渡者Nacos究竟有多强? openFeign夺命连环9问,这谁受得了? 阿里面试这样问:Nacos.Apollo.Config配置中心如何选型?这10个维度告诉你! 阿里面试败北:5种微服务注册中心如何选型?这几个维度告诉你! 阿里限流神器Sentinel夺命连环 17 问? 这篇文章主要介绍一些目前主流的几种分布式解决方案以及阿里开源的一站式分布式解决方案Seata. 文章有点长,耐…
目录 前言 1. Seata 基础知识 1.1 Seata 的 AT 模式 1.2 Seata AT 模式的工作流程 1.3 Seata 服务端的存储模式 1.4 Seata 与 Spring Cloud 整合说明 1.5 关于事务分组的说明 2. Seata 服务端的安装 2.1 安装包安装 Seata 2.1.1 下载 Seata 2.1.2 修改存储模式为 db 2.1.3 指明注册中心与配置中心,上传 Seata 配置 2.1.4 启动 Seata 服务器 2.2 源码安装 Seata…
好长时间没发文了,最近着实是有点忙,当爹的第 43 天,身心疲惫.这又赶上年底,公司冲 KPI 强制技术部加班到十点,晚上孩子隔两三个小时一醒,基本没睡囫囵觉的机会,天天处于迷糊的状态,孩子还时不时起一些奇奇怪怪的疹子,总让人担惊受怕的. 本就不多的写文章时间又被无限分割,哎~ 打工人真是太难了. 本来不知道写点啥,正好手头有个新项目试着用阿里的 Seata 中间件做分布式事务,那就做一个实践分享吧! 介绍 Seata 之前在简单回顾一下分布式事务的基本概念. 分布式事务的产生 我们先看看百度上…
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案.对于Seata不太了解的朋友,可以看下我之前写的文章: 微服务开发的最大痛点-分布式事务SEATA入门简介. AT模式 AT模式怎么理解 AT模式下,每个数据库被当做是一个Resource,Seata 里称为 DataSource Resource.业务通过 JDBC 标准接口访问数据库资源时,Se…
浅谈,seata在使用feign-url通过域名调用时分布式事务不生效的问题及解决 ​ 在前几个月时,我们项目出现了分布式事务的问题,那么什么是分布式事务问题呢,简单的说,我们有俩服务A和B,它们对应的数据源分别是a_db和b_db,A服务收到请求在执行到某个操作时,需要调用B服务,在B服务里继续执行,B服务里面的执行牵扯到了对b_db的增删改操作,等B服务执行完后,A又继续执行,结果此刻,A发生异常了,由于B在另一个服务,有自己的数据源,它和A也不属于一个事务,导致a_db自己回滚了,b_db…