温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在DOCKER中部署一个SEATA事务服务

发布时间:2021-03-02 16:30:39 来源:亿速云 阅读:291 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关怎么在DOCKER中部署一个SEATA事务服务,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

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/h3/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

上述就是小编为大家分享的怎么在DOCKER中部署一个SEATA事务服务了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI