• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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+selenium实现自动化健康报备的方法
    下一篇:Docker镜像构建原理解析(不装docker也能构建镜像)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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