• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Docker+selenium实现自动化健康报备的方法发布时间:2022-02-12
下一篇:
Docker镜像构建原理解析(不装docker也能构建镜像)发布时间:2022-02-12
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap