前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >seata docker 高可用部署

seata docker 高可用部署

作者头像
路过君
发布于 2021-12-07 08:27:42
发布于 2021-12-07 08:27:42
93200
代码可运行
举报
运行总次数:0
代码可运行

版本

1.4.2 官方文档 dockerhub

启动

  • 通过环境变量SEATA_CONFIG_NAME指定配置文件位置/root/seata-config/registry.conf
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker run --name seata-server \
        -p 8091:8091 \
        -e SEATA_CONFIG_NAME=file:/root/seata-config/registry \ 
        -v /User/seata/config:/root/seata-config  \
        seataio/seata-server

配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
registry {
  type = "nacos"

  nacos {
    application = "seata-server"
    serverAddr = "192.168.199.2"
    namespace = "test"
    group = "SEATA_GROUP"
    cluster = "default"
    username = ""
    password = ""
  }
}

config {
  type = "nacos"  
  nacos {
    serverAddr = "192.168.199.2"
    namespace = "test"
    group = "SEATA_GROUP"
    username = ""
    password = ""
  }
}

NACOS配置

注:使用nacos配置,需要在对应分组(SEATA_GROUP)下针对配置项目逐条配置文本值,而不是创建包含所有配置的properties文件,可以使用官方源码中的脚本导入 全部可用配置参考

1. 使用数据库

store.mode=db store.db.datasource=druid store.db.dbType=mysql store.db.driverClassName=com.mysql.jdbc.Driver store.db.url=jdbc:mysql://192.168.199.2:3306/seata?useUnicode=true&rewriteBatchedStatements=true store.db.user=root store.db.password=123456

创建数据库

建库脚本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-- -------------------------------- 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_gmt_modified_status` (`gmt_modified`, `status`),
    KEY `idx_transaction_id` (`transaction_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

-- 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 = InnoDB
  DEFAULT CHARSET = utf8;

-- 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),
    `gmt_create`     DATETIME,
    `gmt_modified`   DATETIME,
    PRIMARY KEY (`row_key`),
    KEY `idx_branch_id` (`branch_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8;

异常处理

1. 客户端报错 Data too long for column ‘application_id’

io.seata.core.exception.TmTransactionException: TransactionException[begin global request failed. xid=null, msg=Data truncation: Data too long for column ‘application_id’ at row 1] at io.seata.tm.DefaultTransactionManager.begin(DefaultTransactionManager.java:55) ~[seata-all-1.3.0.jar:1.3.0] at io.seata.tm.api.DefaultGlobalTransaction.begin(DefaultGlobalTransaction.java:104) ~[seata-all-1.3.0.jar:1.3.0] at io.seata.tm.api.TransactionalTemplate.beginTransaction(TransactionalTemplate.java:175) ~[seata-all-1.3.0.jar:1.3.0]

seata数据库global_table.application_id字段默认长度为varchar(32),如果客户端应用ID超长则报此错 手动修改字段类型增加长度即可

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/07/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Seata 番外篇:使用 docker-compose 部署 Seata Server 及 K8S 部署 Seata 高可用
「Tip:」 本文安装的 Seata Server 是以 Nacos 为注册中心,DB 为数据存储的模式。
行百里er
2023/09/01
2.1K0
Seata 番外篇:使用 docker-compose 部署 Seata Server 及 K8S 部署 Seata 高可用
Docker部署Seata服务器
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
杨不易呀
2023/10/31
9300
Docker部署Seata服务器
Spring Cloud Alibaba Seata 配置
这个东东整了我2天多。。我有点无语。。本来就很简单的东西。。有点无辜。开发还是本地搞环境好,问题少😂
程序员朱永胜
2023/08/21
3040
Spring Cloud Alibaba Seata 配置
springcloud seata_seata github
linux后台启动方式 :nohup ./seata-server.sh > /dev/seata-service.log 2>&1 &
全栈程序员站长
2022/09/24
2860
springcloud seata_seata github
【seata系列】centos服务器带你踩坑搭建seata以及解决MySQL8.0无法启动问题
通过github下载安装包:https://github.com/seata/seata/releases/tag/v1.3.0 seate中文文档:http://seata.io/zh-cn/docs/overview/what-is-seata.html
沁溪源
2021/10/09
2.2K0
【seata系列】centos服务器带你踩坑搭建seata以及解决MySQL8.0无法启动问题
SpringCloud Alibaba 实战教程10-seata1.3整合nacos实现分布式事务
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
gang_luo
2021/02/04
8280
SpringCloud Alibaba 实战教程10-seata1.3整合nacos实现分布式事务
Seata 环境搭建
Seata是一个分布式事务,seata服务端也是一个微服务,需要和其他微服务一样需要注册中心和配置中心。同时事务回滚,需要数据库日志记录。
用户10384376
2023/02/26
6040
Seata 环境搭建
SpringCloud➕Mybatis➕Eureka➕Feign➕Seata分布式事务???
Seata(Simple Extensible Autonomous Transaction Architecture) 是 阿里开源的分布式事务中间件,以高效并且对业务 0 侵入的方式,解决微服务场景下面临的分布式事务问题。
Cheng_Blog
2022/02/25
6950
SpringCloud➕Mybatis➕Eureka➕Feign➕Seata分布式事务???
SEATA 分布式事务入门DEMO
在eureka中看到如下8091端口的服务之后,即启动seata-server正常!
Isaac Zhang
2020/02/13
1.4K0
SEATA 分布式事务入门DEMO
SpringCloudAlibaba之Seata
单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三三 个服务来完成。此时每个服务内部的数据一致性由本地事务来保证, 但是全局的数据一致性问题没法保证。
shaoshaossm
2022/12/27
2570
SpringCloudAlibaba之Seata
【Seata】seata的部署和集成
首先我们要下载seata-server包,地址在http://seata.io/zh-cn/blog/download.html
陶然同学
2023/10/14
5380
【Seata】seata的部署和集成
SpringCloud Alibaba 实战教程9-seata单机数据库存储方式启动
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
gang_luo
2021/02/02
5630
SpringCloud Alibaba 实战教程9-seata单机数据库存储方式启动
分布式事务解决方案:Spring Cloud + Nacos + Seata整合
Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。
程序员云帆哥
2022/05/10
1.5K1
分布式事务解决方案:Spring Cloud + Nacos + Seata整合
Spring Cloud Alibaba 系列之 Seata 介绍
  Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。在 Seata 开源之前,Seata 对应的内部版本在阿里经济体内部一直扮演着分布式一致性中间件的角色,帮助经济体平稳的度过历年的双11,对各BU业务进行了有力的支撑。经过多年沉淀与积累,商业化产品先后在阿里云、金融云进行售卖。2019.1 为了打造更加完善的技术生态和普惠技术成果,Seata 正式宣布对外开源,未来 Seata 将以社区共建的形式帮助其技术更加可靠与完备。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。☞ 官网
Demo_Null
2020/12/07
6480
Spring Cloud Alibaba 系列之 Seata 介绍
springboot 整合 seata 分布式事务
https://gitee.com/mnzp/seata-server-1.4.2
用户10125653
2022/11/10
6780
springboot 整合 seata 分布式事务
SpringCloud Alibaba Seata处理分布式事务
分布式之后:   单体应用被拆分成微服务应用,原来的三个模块被拆分成三个独立的应用,分别使用三个独立的数据源,业务操作需要调用三个服务来完成。此时每个服务内部的数据一致性由本地事务来保证,但是全局的数据一致性问题没法保证。
别团等shy哥发育
2023/02/25
2880
SpringCloud Alibaba Seata处理分布式事务
实战分布式事务【Seata+Spring Cloud】
常见分布式事务组件:Seata 、Atomikos、bitronix、Narayana等
田维常
2023/08/31
2840
实战分布式事务【Seata+Spring Cloud】
mac 上学习k8s系列(53)seata-go
https://github.com/seata/seata-go是https://github.com/seata/seata的golang客户端,目前支持at和tcc两种分布式事务的实现。虽然官方的文档给的例子描述了如何处理分布式事务,但是如何部署和使用语焉不详。下面介绍下两种部署方式file、db
golangLeetcode
2022/12/17
6690
SpringCloud之Seata基本介绍与安装
Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。
一个风轻云淡
2023/11/08
4330
seata(2):db mode
seate-server有三种方式存储事务信息:file、db、redis;在file模式下,它将信息存储在文件/seata-server/sessionStore/root.data里,我们可以去机器上查看下文件的具体内容
golangLeetcode
2023/09/20
5370
seata(2):db mode
相关推荐
Seata 番外篇:使用 docker-compose 部署 Seata Server 及 K8S 部署 Seata 高可用
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文