SpringCloudAlibaba 微服务整合分布式事务Seata
基于AT模式
创建undo_log
(回滚日志表)表, 每个数据库需要创建
注意:
UNDO_LOG Table:不同数据库在类型上会略有差别。详见官网
-- 注意此处0.7.0+ 增加字段 context
CREATE TABLE `undo_log` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`branch_id` bigint(20) NOT NULL,`xid` varchar(100) NOT NULL,`context` varchar(128) NOT NULL,`rollback_info` longblob NOT NULL,`log_status` int(11) NOT NULL,`log_created` datetime NOT NULL,`log_modified` datetime NOT NULL,PRIMARY KEY (`id`),UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
下载部署Seata的TC服务端(本次教程下载的版本是 1.5.1)
下载地址:https://seata.io/zh-cn/blog/download.html
Linux/Mac 服务器安装
- 解压
-/seata-server.sh
启动,默认是8091
端口(记得防火墙开放端口,也可以守护进程启动)
- 解压
TC需要存储全局事务和分支事务的记录,支持三种存储模式
file模式 (默认):性能高, 适合单机模式,在内存中读写,并持久化到本地文件中
- 在
bin/sessionStore/root.data
文件
- 在
db模式 :性能较差,适合tc集群模式
redis模式:性能较高,适合tc集群模式
常见问题
seata 在 JDK11下运行报错
解决: 下载下来的seata 默认没有存放日志文件的目录, 手动创建seata/logs/seata_gc.log
目录和文件
SpringCloudAlibaba整合分布式事务seata
各项目添加依赖
出现的问题:no available service 'null' found, please make sure registry config correct
安装的服务端版本
必须要和你客户端的版本保持一样
- 不可行导入依赖方式
<!--alibaba微服务整合分布式事务, mvn 包冲突 不可行 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId></dependency>
- 合理的依赖方式(
seata-spring-boot-starter 版本
与 部署的TC服务端版本一致
)
<!--alibaba微服务整合分布式事务--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-seata</artifactId><exclusions><exclusion><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId></exclusion></exclusions></dependency><dependency><groupId>io.seata</groupId><artifactId>seata-spring-boot-starter</artifactId><version>1.5.1</version></dependency>
各微服务配置文件修改
#seata配置
seata:tx-service-group: ${spring.application.name}-groupservice:grouplist:testdemo: 127.0.0.1:8091vgroup-mapping:testdemo-user-service-group: testdemo
启动事务
在开始业务方法上添加 @GlobalTransactional
注解
SpringCloudAlibaba 微服务整合分布式事务Seata相关推荐
- 微服务框架 SpringCloud微服务架构 分布式事务 38 动手实践 38.2 实现XA 模式
微服务框架 [SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务] 分布式事务 文章目录 微服务 ...
- 【实践篇】SpringCloud + Eureka + Mybatis plus 整合分布式事务Seata
纵观全文 项目简介 配置Seata Server服务 修改conf下的registry.conf文件 修改conf下的file.conf文件 启动seata server服务 在系统服务中配置使用Se ...
- 阿里P9:做了6年架构设计,这次聊聊微服务与分布式事务细节
微服务因其高内聚.低耦合.高扩展.敏捷开发为很多企业所用,当然,没有任何一项技术是完美的.系统微服务化后,一个看似简单的功能,内部可能需要调用多个服务并操作多个数据库实现. 毫不夸张地说,分布式事务已 ...
- 微服务下分布式事务模式的详细对比
点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 后台回复"k8s",可领取k8s资料 作为 Red H ...
- spring cloud alibaba + tx-lcn 实现微服务的分布式事务管理
Spring Cloud Alibaba官方文档:https://github.com/alibaba/spring-cloud-alibaba/blob/master/README-zh.md Sp ...
- 微服务架构分布式事务解决方案设计思路-(概念篇)
2019独角兽企业重金招聘Python工程师标准>>> 学习以电商购物支付流程中支付系统的支付结果处理为例(学习龙果支付) 第一节:了解常用的分布式解决方案 一.分布式事务方案:最终 ...
- (微服务)分布式事务-最大努力交付 消息最终一致性方案
小插曲 本话题已收入视频讲座<Spring Cloud分布式事务解决方案>大家不妨围观下.开源项目: CoolMQ,项目支持网站: http://rabbitmq.org.cn,最新文章或 ...
- 分布式事务 seata 最全入门教程
基本介绍 什么是分布式事务 指一次大的操作由不同的小操作组成的,这些小的操作分布在不同的服务器上,分布式事务需要保证这些小操作要么全部成功,要么全部失败.从本质上来说,分布式事务就是为了保证不同数据库 ...
- 微服务和分布式的区别
分布式架构是分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广,相关的书籍也非常多,也没有涉及这些技术的细节,只是从各种分布式系统平台 ...
最新文章
- hdu 2085 核反应堆
- python语言介绍-Python语言简介
- APP推广方法-导图
- ora-12514报错解决方法
- Linux第六周学习总结——进程额管理和进程的创建
- python 下标越界_Python中异常处理
- PAT 1073 多选题常见计分法(20)(代码+思路)
- ajax数据显示,使用js通用模板
- matlab mysql数据库增删改查_ef6.0增删改查操作
- C语言程序设计知识必备pdf,C语言程序设计基础知识要点.pdf
- OSGEARTH三维地形开源项目
- 微软洪小文全面解读智能层级:目前的智能都是AI+HI
- word中正文分栏重新换页问题
- linux删除卸载npm,卸载安装node npm (Mac linux )
- Cortana 设备建议
- UE4之替换第三人称模板
- 观看《创新的力量》观后感
- mysql备份脚本 shell_linux中mysql备份shell脚本代码 相关自动化脚本
- c# 获取路径的盘符_C# 如何获取映射网络驱动器的共享路径 | 学步园
- raid0 raid1 raid5 raid6 raid10的优缺点
热门文章
- html 画廊代码,HTML5实践-使用css装饰图片画廊的代码分享(二)
- 【单片机毕业设计】【mcuclub-302】指纹密码锁 | 智能锁 | 多功能锁 | 指纹锁 | 电子密码锁 | 智能门锁
- 外贸行业email邮箱购买如何申请?
- 鸿蒙系统配在华为什么手机上,鸿蒙系统什么时候能用 鸿蒙系统哪些手机可以用...
- idea配置git(附错误解决方法)
- OKCC效率低及通话声音小怎么办?
- JS正则表达式完全匹配字符
- 天猫盒子系统配置服务器失败怎么办,天猫魔盒投屏失败怎么办,其实可以自己解决!...
- java8重写comparator,Java 8 Lambda : Comparator 示例
- 2021-08-23 JSON