分布式事务中间件Seata的安装
本文来说下分布式事务中间件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的安装相关推荐
- 初始分布式事务中间件seata
本文来说下分布式事务中间件Seata的安装 文章目录 概述 Seata是什么 Seata官网 文档和博客 下载和安装 概述 在微服务开发过程中分布式事务一直是一个比较重要的问题,之前对于分布式事务的解 ...
- eureka server配置_springcloud+eureka整合分布式事务中间件seata
今天继续给大家分享一下阿里的分布式事务中间件seata的使用,跟上篇文章<springboot多数据源整合分布式事务中间件seata>不一样的是,上篇文章是单服务绑定多数据源的分布式情况, ...
- 使用Seata解决分布式事务以及Seata的安装、配置和使用
目录 事务的介绍 什么是本地事务? 分布式事务 分布式事务解决方案之seata Seata介绍 Seata是什么 Seata的分布式事务解决方案 Seata的核心组件 AT模式的工作流程 一阶段 二阶 ...
- 分布式事务中间件Seata简介
介绍 Seata 是阿里巴巴开源的分布式事务中间件,一种分布式事务解决方案,具有高性能和易于使用的微服务架构.可前往:https://seata.io/zh-cn/docs/overview/what ...
- druid seata 配置_分布式事务解决方案——Seata使用
在微服务开发过程中分布式事务一直是一个比较重要的问题,之前对于分布式事务的解决方法一般会通过MQ的最终一致性来解决,尤其是RocketMQ的事务消息,感兴趣的可以看Spring Boot整合Rocke ...
- Seata阿里分布式事务中间件(一):Seata的基本介绍
Fescar 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务 场景下面临的分布式事务问题. 什么是微服务化带来的分布式事务问题? 首先,设想一个传统的单体 ...
- 详解阿里开源分布式事务框架Seata
Seata发展历史 笔者于2014年开始着手解决阿里巴巴集团内部业务的分布式事务问题,从0到1研发一个支持非侵入模式(内部称之为AT模式,即自动模式)和TCC模式(内部称之为MT模式,即手动模式)的分 ...
- 阿里分布式事务框架Seata原理解析
阿里分布式事务框架Seata原理解析 作者:伊凡的一天 链接:https://www.jianshu.com/p/044e95223a17 Seata框架是一个业务层的XA(两阶段提交)解决方案.在理 ...
- 分布式事务解决方案Seata
一.Seata 简介 Seata 是 阿里巴巴2019年开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务.在 Seata 开源之前,Seata 对应的内部版本在阿里内 ...
最新文章
- 【Shell】使用记录
- 项目Alpha冲刺(团队)-代码规范、冲刺任务与计划
- java xml map 方法_JAVA XML转换MAP 方法
- php缓存实例,一个PHP缓存类实例
- 【软件开发底层知识修炼】六 Binutils辅助工具之- addr2line与strip工具
- Git 添加和提交组合命令
- 图论模型Floyd算法
- 个人作业-软件案例分析
- xprinter打印机android 开发文档,芯烨智能打印机,让手机功能更神奇
- C4D中常用材质的创建与赋予
- 计算机打不开excel表格,excel表格打不开怎么办?excel表格打不开的原因及解决方法...
- (离散)令R={m|m=a+b√2,a,b∈Q,+为普通加法},定义映射g:R→ R 为g(a+b√2)= a-b√2,试证:g是/R,+/到/R,+/的自同构映射
- 矩阵变换应用-分块矩阵
- APP开发的详细流程
- 怎么把图片里的表格转成电子版表格?说一个渠道
- 一起用Python做个自动化短视频生成脚本,实现热门视频流水线生产!
- 别太在意人走茶凉 物是人非
- Python爬虫4.2 — ajax(动态网页数据抓取)用法教程
- js控制form提交
- 解决 ERROR 2002 (HY000) Can‘t connect to local MySQL server through socket ‘tmpmysql.sock‘
热门文章
- 首届CSS开发者大会|七牛助力前端开发
- Struts2的struts.xml的配置细节
- 解读Linux命令格式
- 如何能include外键对应的表?向博客园的兄弟请教!
- 11.1.1 认识StringBuffer类(1)
- Invalid length for a Base-64 char array Exception.
- AOP就是面向切面编程,我们可以从几个层面来实现AOP。 ![](https://upload-im
- Alain 菜单权限控制
- 为 Confluence 6 配置发送邮件消息
- 写出高质量的代码——“零星”总结(延续3)