当前位置:服务器 > > 正文

日常操作docker命令(SEATA事务服务DOCKER部署的过程详解)

时间:2021-10-21 08:19:47类别:服务器

日常操作docker命令

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部署内容请搜索开心学习网以前的文章或继续浏览下面的相关文章希望大家以后多多支持开心学习网!

    标签:
    上一篇下一篇

    猜您喜欢

    热门推荐