上一篇,SpringCloudAlibaba篇(五)整合GateWay(微服务网关)
文章目录
Seata 是什么?
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

AT 模式
前提
- 基于支持本地 ACID 事务的关系型数据库。
- Java 应用,通过 JDBC 访问数据库。
整体机制
两阶段提交协议的演变:
- 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
- 二阶段:
- 提交异步化,非常快速地完成。
- 回滚通过一阶段的回滚日志进行反向补偿。
项目整合seata
1.拉取并运行seata服务端
1.1 拉取seata
https://github.com/seata/seata/releases

1.2 修改配置

参考文档修改conf/registry.conf,配上自己的nacos



注意将type 修改为nacos ,建议新建一个namespace 如何新建因为配置文件实在是太多了
1.3 下载配置文件
修改存储模式

修改连接池信息
我的mysql是8.0的所以 store.db.driverClassName=com.mysql.jdbc.Driver
需要修改为store.db.driverClassName=com.mysql.cj.jdbc.Driver

1.4 下载seata数据库的建表SQL
https://github.com/seata/seata/tree/develop/script/server/db
数据库中新建seata数据库 并执行 mysql.sql
-- -------------------------------- The script used when storeMode is 'db' --------------------------------
-- the table to store GlobalSession data
CREATE TABLE IF NOT EXISTS `global_table`
(
`xid` VARCHAR(128) NOT NULL,
`transaction_id` BIGINT,
`status` TINYINT NOT NULL,
`application_id` VARCHAR(32),
`transaction_service_group` VARCHAR(32),
`transaction_name` VARCHAR(128),
`timeout` INT,
`begin_time` BIGINT,
`application_data` VARCHAR(2000),
`gmt_create` DATETIME,
`gmt_modified` DATETIME,
PRIMARY KEY (`xid`),
KEY `idx_status_gmt_modified` (`status` , `gmt_modified

本文介绍了Seata作为一款高性能的分布式事务解决方案,并详细阐述了AT模式的工作机制。接着,逐步指导如何配置和启动Seata服务端,包括下载配置文件、数据库建表SQL以及向Nacos推送配置。最后,展示了如何在客户端配置Seata,包括添加依赖、配置文件设置和数据库表的创建,以实现微服务的分布式事务支持。

最低0.47元/天 解锁文章
1898

被折叠的 条评论
为什么被折叠?



