SpringCloudAlibaba篇(六)整合Seata(微服务分布式事务nacos+seata)

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

上一篇,SpringCloudAlibaba篇(五)整合GateWay(微服务网关)

Seata 是什么?

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
在这里插入图片描述

AT 模式

前提

  • 基于支持本地 ACID 事务的关系型数据库。
  • Java 应用,通过 JDBC 访问数据库。

整体机制

两阶段提交协议的演变:

  • 一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。
  • 二阶段:
    • 提交异步化,非常快速地完成。
    • 回滚通过一阶段的回滚日志进行反向补偿。

seata官方文档

项目整合seata

1.拉取并运行seata服务端

1.1 拉取seata

https://github.com/seata/seata/releases
在这里插入图片描述

1.2 修改配置

在这里插入图片描述
参考文档修改conf/registry.conf,配上自己的nacos
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意将type 修改为nacos ,建议新建一个namespace 如何新建因为配置文件实在是太多了

1.3 下载配置文件

config.txt下载
在这里插入图片描述

修改存储模式
在这里插入图片描述

修改连接池信息

我的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
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fate急速出击

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值