本文来说下分布式事务中间件seata

文章目录

  • seata下载
  • 修改file.conf的配置
  • 修改registry.conf的配置
  • 启动Seata

seata下载

Seata是一个分布式事务中间件,使用它必须要启动服务,然后微服务中的服务,也就是Seata的客户端会向Seata的服务端进行注册,注册的时候会有携带该客户端的一些相关信息,具体是什么后面我们会说到。

到官网上下载seata,最新的版本是1.4.2,下载二进制版本的

下载完毕之后解压,我这里下载的是1.4.0版本。在github上下载有时候会比较慢。


修改file.conf的配置

这里说一下Seata服务端数据的存储模式,目前是支持两种一种是数据库db,一种是文件file,默认是使用的文件,但是个人觉得最好还是使用数据库会好一点。Seata的全局事务会话信息由3部分内容组成,全局事务、分支事务、全局锁,它们对应的表名分别为global_table、branch_table、lock_table

1.0版本之后里面没有这些sql文件,只有1.0以下的才有。下面我们创建Seata服务端需要的数据库seata和表,建表脚本如下:


-- -------------------------------- 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`),KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;-- the table to store BranchSession data
CREATE TABLE IF NOT EXISTS `branch_table`
(`branch_id`         BIGINT       NOT NULL,`xid`               VARCHAR(128) NOT NULL,`transaction_id`    BIGINT,`resource_group_id` VARCHAR(32),`resource_id`       VARCHAR(256),`branch_type`       VARCHAR(8),`status`            TINYINT,`client_id`         VARCHAR(64),`application_data`  VARCHAR(2000),`gmt_create`        DATETIME(6),`gmt_modified`      DATETIME(6),PRIMARY KEY (`branch_id`),KEY `idx_xid` (`xid`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(`row_key`        VARCHAR(128) NOT NULL,`xid`            VARCHAR(128),`transaction_id` BIGINT,`branch_id`      BIGINT       NOT NULL,`resource_id`    VARCHAR(256),`table_name`     VARCHAR(32),`pk`             VARCHAR(36),`status`         TINYINT      NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',`gmt_create`     DATETIME,`gmt_modified`   DATETIME,PRIMARY KEY (`row_key`),KEY `idx_status` (`status`),KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;CREATE TABLE IF NOT EXISTS `distributed_lock`
(`lock_key`       CHAR(20) NOT NULL,`lock_value`     VARCHAR(20) NOT NULL,`expire`         BIGINT,primary key (`lock_key`)
) ENGINE = InnoDBDEFAULT CHARSET = utf8mb4;INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('HandleAllSession', ' ', 0);

在seata1.0以后,可以下载seata的源码,得到上面的sql脚本,路径如下所示

之后就是修改Seata的配置文件,打开解压后的目录,并进入到conf目录,这里主要是Seata的配置文件,分别是registry.conf和file.conf,这两个文件主要是配置服务端配置的相关信息,因为默认使用的注册类型是file(其他有nacos、eureka、redis等),即会从file.conf读取相关配置。我们接下来就是修改file.conf,修改存储模式为db,并配置db的相关信息,如下:


修改registry.conf的配置

在registry模块中将type选择为nacos 并且在nacos中的serverAddr修改成localhost:8848 这是我们的nacos注册进的地址



启动Seata

启动Seata,双击下面的bat命令来启动seata

nocas控制面板查看seata服务是否启动成功,成功注册进入nocas中

分布式事务中间件Seata的安装相关推荐

  1. 初始分布式事务中间件seata

    本文来说下分布式事务中间件Seata的安装 文章目录 概述 Seata是什么 Seata官网 文档和博客 下载和安装 概述 在微服务开发过程中分布式事务一直是一个比较重要的问题,之前对于分布式事务的解 ...

  2. eureka server配置_springcloud+eureka整合分布式事务中间件seata

    今天继续给大家分享一下阿里的分布式事务中间件seata的使用,跟上篇文章<springboot多数据源整合分布式事务中间件seata>不一样的是,上篇文章是单服务绑定多数据源的分布式情况, ...

  3. 使用Seata解决分布式事务以及Seata的安装、配置和使用

    目录 事务的介绍 什么是本地事务? 分布式事务 分布式事务解决方案之seata Seata介绍 Seata是什么 Seata的分布式事务解决方案 Seata的核心组件 AT模式的工作流程 一阶段 二阶 ...

  4. 分布式事务中间件Seata简介

    介绍 Seata 是阿里巴巴开源的分布式事务中间件,一种分布式事务解决方案,具有高性能和易于使用的微服务架构.可前往:https://seata.io/zh-cn/docs/overview/what ...

  5. druid seata 配置_分布式事务解决方案——Seata使用

    在微服务开发过程中分布式事务一直是一个比较重要的问题,之前对于分布式事务的解决方法一般会通过MQ的最终一致性来解决,尤其是RocketMQ的事务消息,感兴趣的可以看Spring Boot整合Rocke ...

  6. Seata阿里分布式事务中间件(一):Seata的基本介绍

    Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题. 什么是微服务化带来的分布式事务问题? 首先,设想一个传统的单体 ...

  7. 详解阿里开源分布式事务框架Seata

    Seata发展历史 笔者于2014年开始着手解决阿里巴巴集团内部业务的分布式事务问题,从0到1研发一个支持非侵入模式(内部称之为AT模式,即自动模式)和TCC模式(内部称之为MT模式,即手动模式)的分 ...

  8. 阿里分布式事务框架Seata原理解析

    阿里分布式事务框架Seata原理解析 作者:伊凡的一天 链接:https://www.jianshu.com/p/044e95223a17 Seata框架是一个业务层的XA(两阶段提交)解决方案.在理 ...

  9. 分布式事务解决方案Seata

    一.Seata 简介 Seata 是 阿里巴巴2019年开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务.在 Seata 开源之前,Seata 对应的内部版本在阿里内 ...

最新文章

  1. 【Shell】使用记录
  2. 项目Alpha冲刺(团队)-代码规范、冲刺任务与计划
  3. java xml map 方法_JAVA XML转换MAP 方法
  4. php缓存实例,一个PHP缓存类实例
  5. 【软件开发底层知识修炼】六 Binutils辅助工具之- addr2line与strip工具
  6. Git 添加和提交组合命令
  7. 图论模型Floyd算法
  8. 个人作业-软件案例分析
  9. xprinter打印机android 开发文档,芯烨智能打印机,让手机功能更神奇
  10. C4D中常用材质的创建与赋予
  11. 计算机打不开excel表格,excel表格打不开怎么办?excel表格打不开的原因及解决方法...
  12. (离散)令R={m|m=a+b√2,a,b∈Q,+为普通加法},定义映射g:R→  R 为g(a+b√2)= a-b√2,试证:g是/R,+/到/R,+/的自同构映射
  13. 矩阵变换应用-分块矩阵
  14. APP开发的详细流程
  15. 怎么把图片里的表格转成电子版表格?说一个渠道
  16. 一起用Python做个自动化短视频生成脚本,实现热门视频流水线生产!
  17. 别太在意人走茶凉 物是人非
  18. Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
  19. js控制form提交
  20. 解决 ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘tmpmysql.sock‘

热门文章

  1. 首届CSS开发者大会|七牛助力前端开发
  2. Struts2的struts.xml的配置细节
  3. 解读Linux命令格式
  4. 如何能include外键对应的表?向博客园的兄弟请教!
  5. 11.1.1 认识StringBuffer类(1)
  6. Invalid length for a Base-64 char array Exception.
  7. AOP就是面向切面编程,我们可以从几个层面来实现AOP。 ![](https://upload-im
  8. Alain 菜单权限控制
  9. 为 Confluence 6 配置发送邮件消息
  10. 写出高质量的代码——“零星”总结(延续3)