nacos+feign+seata 集成分布式事务,以及踩坑过程

本文介绍了如何在Spring Cloud项目中集成Nacos、Feign和Seata,实现AT模式的分布式事务。详细步骤包括:下载和初始化Seata数据库、修改配置文件、上传配置到Nacos、业务服务配置、启动服务以及解决遇到的问题和事务回滚失败的常见情况。过程中涉及Seata的SQL限制、配置中心、注册中心、存储模式以及Feign的全局事务ID传递。
摘要由CSDN通过智能技术生成

这是一段完整的配置spring cloud +feign+nacos 项目下,增加 seata 的 AT 模式作为的分布式事务解决方案,同时希望可以通过这个流程下来,

可以看到我在过程中参考的信息来源,去总结如何引入框架,同时存在疑问信息,从哪些现有信息里找到解决方案的方式有些帮助。

版本信息:

springBoot:2.2.5.RELEASE

nacos:2.0 以上

seata:1.5.2

1、下载和初始化 seata 数据库

(1)下载

访问:

Releases · seata/seata · GitHub

下载找到Assets下的 seata-server 压缩包。

(2)初始化所需的 Mysql 数据库

此处示例用的是 mysql,还可以支持 oracle 和 postgresql

创建一个DB,此处命名为 db_seata,进入库中

执行解压缩文件中 seat/script/server/db/mysql.sql 的 SQL 语句

(3)为业务服务对应数据库添加 undo_log

这里有熟悉的,是不是很像 mysql 的undo_log 文件机制,seata 的实现其实也是模拟 mysql 的 undo_log 的实现方案去做到回滚的。

但是目前 seata 回滚的 sql 还是存在一些限制,详情可查阅:SQL限制

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,

  &#
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值