SEATA事务服务DOCKER部署的过程详解

 更新时间:2021年03月02日 14:25:43   作者:faith丶  
这篇文章主要介绍了SEATA事务服务DOCKER部署的过程详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

1、创库授权语句

> create database seata;
> grant all on seata.* to seata_user@'%' identified by '123455'

2、数据库建表语句

cat create_seata_table.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_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(96),
  `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;

 3、导入建表语句

mysql -useata_user -p seata < create_seata_table.sql

 4、FILE.CONF修改数据库连接信息

cat /home/seata-server/resources/file.conf
## transaction log store, only used in seata-server
store {
 ## store mode: file、db、redis
 mode = "db"
 ## rsa decryption public key
 publicKey = ""
 ## file store property
 file {
  ## store location dir
  dir = "sessionStore"
  # branch session size , if exceeded first try compress lockkey, still exceeded throws exceptions
  maxBranchSessionSize = 16384
  # globe session size , if exceeded throws exceptions
  maxGlobalSessionSize = 512
  # file buffer size , if exceeded allocate new buffer
  fileWriteBufferCacheSize = 16384
  # when recover batch read size
  sessionReloadReadSize = 100
  # async, sync
  flushDiskMode = async
 }

 ## database store property
 db {
  ## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp)/HikariDataSource(hikari) etc.
  datasource = "druid"
  ## mysql/oracle/postgresql/h2/oceanbase etc.
  dbType = "mysql"
  driverClassName = "com.mysql.jdbc.Driver"
  ## if using mysql to store the data, recommend add rewriteBatchedStatements=true in jdbc connection param
  url = "jdbc:mysql://192.168.56.30:3306/seata?rewriteBatchedStatements=true" user = "seata_user"
  password = "123455"
  minConn = 5
  maxConn = 100
  globalTable = "global_table"
  branchTable = "branch_table"
  lockTable = "lock_table"
  queryLimit = 100
  maxWait = 5000
 }

 ## redis store property
 redis {
  ## redis mode: single、sentinel
  mode = "single"
  ## single mode property
  single {
   host = "127.0.0.1"
   port = "6379"
  }
  ## sentinel mode property
  sentinel {
   masterName = ""
   ## such as "10.28.235.65:26379,10.28.235.65:26380,10.28.235.65:26381"
   sentinelHosts = ""
  }
  password = ""
  database = "0"
  minConn = 1
  maxConn = 10
  maxTotal = 100
  queryLimit = 100
 }
}

5、REGISTRY.CONF修改注册NACOS连接信息

cat /home/seata-server/resources/registry.conf
registry {
 # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa
 type = "nacos"
 loadBalance = "RandomLoadBalance"
 loadBalanceVirtualNodes = 10

 nacos {
  application = "es-provider-seata"
  serverAddr = "192.168.56.30:8848"
  group = "DEFAULT_GROUP"
  namespace = ""
  cluster = "default"
  username = "nacos"
  password = "nacos"
 }
 eureka {
  serviceUrl = "http://localhost:8761/eureka"
  application = "default"
  weight = "1"
 }
 redis {
  serverAddr = "localhost:6379"
  db = 0
  password = ""
  cluster = "default"
  timeout = 0
 }
 zk {
  cluster = "default"
  serverAddr = "127.0.0.1:2181"
  sessionTimeout = 6000
  connectTimeout = 2000
  username = ""
  password = ""
 }
 consul {
  cluster = "default"
  serverAddr = "127.0.0.1:8500"
  aclToken = ""
 }
 etcd3 {
  cluster = "default"
  serverAddr = "http://localhost:2379"
 }
 sofa {
  serverAddr = "127.0.0.1:9603"
  application = "default"
  region = "DEFAULT_ZONE"
  datacenter = "DefaultDataCenter"
  cluster = "default"
  group = "SEATA_GROUP"
  addressWaitTime = "3000"
 }
 file {
  name = "file.conf"
 }
}

config {
 # file、nacos 、apollo、zk、consul、etcd3
 type = "file"

 nacos {
  serverAddr = "127.0.0.1:8848"
  namespace = ""
  group = "SEATA_GROUP"
  username = ""
  password = ""
  dataId = "seataServer.properties"
 }
 consul {
  serverAddr = "127.0.0.1:8500"
  aclToken = ""
 }
 apollo {
  appId = "seata-server"
  ## apolloConfigService will cover apolloMeta
  apolloMeta = "http://192.168.1.204:8801"
  apolloConfigService = "http://192.168.1.204:8080"
  namespace = "application"
  apolloAccesskeySecret = ""
  cluster = "seata"
 }
 zk {
  serverAddr = "127.0.0.1:2181"
  sessionTimeout = 6000
  connectTimeout = 2000
  username = ""
  password = ""
 }
 etcd3 {
  serverAddr = "http://localhost:2379"
 }
 file {
  name = "file.conf"
 }
}

6、DOCKER部署服务

docker run  --name seata-server-latest -p 8091:8091 \
-v /home/seata-server/resources/file.conf:/seata-server/resources/file.conf \ 
-v /home/seata-server/resources/registry.conf:/seata-server/resources/registry.conf \
-v /home/seata-server/logs:/root/logs \
seataio/seata-server:1.3.0

到此这篇关于SEATA事务服务DOCKER部署的过程详解的文章就介绍到这了,更多相关seata docker部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker容器中的Postgresql备份脚本异常解决

    Docker容器中的Postgresql备份脚本异常解决

    本文基于K8S中Docker容器对postgres数据库进行备份的操作,但是提示报错,报错信息为kubectl command not found,本文就来介绍一下报错信息的分析及其解决办法,感兴趣的可以了解一下
    2023-08-08
  • Docker安装部署Net Core实现过程解析

    Docker安装部署Net Core实现过程解析

    这篇文章主要介绍了Docker安装部署Net Core实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-12-12
  • Docker安装Nginx教程实现图例讲解

    Docker安装Nginx教程实现图例讲解

    这篇文章主要介绍了Docker安装Nginx教程图例讲解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Docker run流程及镜像的基本命令详解

    Docker run流程及镜像的基本命令详解

    本文主要介绍了Docker中run流程及镜像的基本命令,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • docker使用registry搭建本地镜像仓库实例详解

    docker使用registry搭建本地镜像仓库实例详解

    这篇文章主要介绍了docker使用registry搭建本地镜像仓库实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • docker的iptables策略详解和用户自定义策略的添加方式

    docker的iptables策略详解和用户自定义策略的添加方式

    在Docker环境下,直接修改iptables以允许特定主机访问指定端口时,需要考虑Docker自身的iptables规则,Docker通过修改nat表的PREROUTING链和filter表的FORWARD链来处理外部对Docker容器的访问,绕过了filter表的INPUT链
    2024-10-10
  • CentOS 7.2 下安装 Docker 1.12.3 版的详细方法

    CentOS 7.2 下安装 Docker 1.12.3 版的详细方法

    这篇文章主要介绍了CentOS 7.2 安装 Docker 1.12.3 版的相关资料,本文分步骤给大家介绍了CentOS 7.2 下安装 Docker 1.12.3 版的详细方法,需要的朋友可以参考下
    2016-11-11
  • 如何解决安装docker的yum工具时报错问题

    如何解决安装docker的yum工具时报错问题

    在安装Docker时遇到yum工具错误可通过更新yum源解决,先卸载旧Docker,备份原yum源,下载新的CentOS-Base.repo文件到指定目录,安装yum工具后,配置Docker的yum源,国内用户建议使用aliyun源以避免访问异常,安装并启动Docker,校验是否成功
    2024-09-09
  • Docker安装anythingllm流程

    Docker安装anythingllm流程

    该文介绍了如何使用Docker安装并运行anythingllm应用程序,通过挂载两个本地目录(C:\anythingllm\storage和C:\anythingllm\env)到Docker容器中,并在浏览器中访问http://localhost:3001/,即可启动并使用anythingllm,作者分享个人经验,鼓励大家参考并支持脚本之家
    2025-02-02
  • Docker创建Mysql容器的简单步骤

    Docker创建Mysql容器的简单步骤

    这篇文章主要给大家介绍了关于Docker创建Mysql容器的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Docker具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04

最新评论