Kusch's blog Kusch's blog
首页
Java
框架
部署与运维
数据库
  • 我的电脑
  • 科学技巧
  • 杂文铺
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mr.Kusch

入门前把门拆了的程序猿一枚
首页
Java
框架
部署与运维
数据库
  • 我的电脑
  • 科学技巧
  • 杂文铺
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Linux常用操作

  • Docker部署

    • Dockerfile常用语法
    • Docker部署Nginx
    • Docker部署Mysql
    • Docker部署MySQL主从
    • Docker部署Nacos
    • Docker部署Jenkins
    • Docker安装ES、Kibana
    • Docker部署PowerJob
    • Docker部署Seata
      • Docker 部署 Seata
        • 拉取镜像
        • 直接启动镜像,获取一份其配置文件
        • 改动复制出来的文件夹中的:application.yml
        • 数据库执行一下seata需要执行的SQL
        • 最终启动命令
        • 访问验证
    • Docker部署Redis
    • Docker部署Sentinel
    • Docker部署RocketMQ
    • docker-compose常用语法
    • docker-compose部署ELK
    • XXL-JOB的ARM镜像制作与上传
    • Docker push缓慢问题解决
  • 常规部署

  • 部署与运维
  • Docker部署
Mr.Kusch
2023-08-22
目录

Docker部署Seata

# Docker 部署 Seata

使用的Nacos是这里部署的

# 拉取镜像

docker pull seataio/seata-server:1.7.0
1

# 直接启动镜像,获取一份其配置文件

  • 先建立一个文件夹准备放置你即将拿出来的配置文件
mkdir -p /opt/dockerAllHere/seata/resources
1
  • 启动镜像
docker run --name seata-server -p 8091:8091 -p 7091:7091 -d seataio/seata-server:1.7.0
1
  • 拷贝容器内的文件到先前建立的文件夹
docker cp seata-server:/seata-server/resources /opt/dockerAllHere/seata/resources
1

# 改动复制出来的文件夹中的:application.yml

server:
  port: 7091

spring:
  application:
    name: seata-server

logging:
  config: classpath:logback-spring.xml
  file:
    path: ${user.home}/logs/seata
  extend:
    logstash-appender:
      destination: 127.0.0.1:4560
    kafka-appender:
      bootstrap-servers: 127.0.0.1:9092
      topic: logback_to_logstash

console:
  user:
    username: seata
    password: seata
seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: nacos
    nacos:
      server-addr: nacos的ip和端口
      namespace: 命名空间名(自己提前新建好)
      group: 你想使用的nacos组名
      username: nacos用户名
      password: nacos密码
      context-path:
      # data-id: seataServer.properties
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server
      server-addr: nacos的ip和端口
      group: 你想使用的nacos组名
      namespace: 命名空间名(自己提前新建好)
      cluster: default
      username: nacos用户名
      password: nacos密码
      context-path:
  store:
    # support: file 、 db 、 redis
    mode: db
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://你的MysqlIP:3306/zzp_seata?rewriteBatchedStatements=true&useUnicode=true
      user: 数据库用户名
      password: 数据库密码
      min-conn: 10
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 1000
      max-wait: 5000
#  server:
#    service-port: 8091 #If not configured, the default is '${server.port} + 1000'
  security:
    secretKey: SeataSecretKey0c382ef121d778043159209298fd40bf3850a017
    tokenValidityInMilliseconds: 1800000
    ignore:
      urls: /,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.jpeg,/**/*.ico,/api/v1/auth/login
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71

# 数据库执行一下seata需要执行的SQL

-- -------------------------------- Create undo_ Log table --------------------------------
-- Seata AT Mode Need to use undo_ Log table.
CREATE TABLE `undo_log` (
                            `id` bigint(20) NOT NULL AUTO_INCREMENT,
                            `branch_id` bigint(20) NOT NULL,
                            `xid` varchar(100) NOT NULL,
                            `context` varchar(128) NOT NULL,
                            `rollback_info` longblob NOT NULL,
                            `log_status` int(11) NOT NULL,
                            `log_created` datetime NOT NULL,
                            `log_modified` datetime NOT NULL,
                            `ext` varchar(100) DEFAULT NULL,
                            PRIMARY KEY (`id`),
                            UNIQUE KEY `ux_undo_log` (`xid`,`branch_id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

-- -------------------------------- 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_status_gmt_modified` (`status` , `gmt_modified`),
    KEY `idx_transaction_id` (`transaction_id`)
    ) ENGINE = InnoDB
    DEFAULT CHARSET = utf8mb4;

-- 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 = utf8mb4;

-- the table to store lock data
CREATE TABLE IF NOT EXISTS `lock_table`
(
    `row_key`        VARCHAR(128) NOT NULL,
    `xid`            VARCHAR(128),
    `transaction_id` BIGINT,
    `branch_id`      BIGINT       NOT NULL,
    `resource_id`    VARCHAR(256),
    `table_name`     VARCHAR(32),
    `pk`             VARCHAR(36),
    `status`         TINYINT      NOT NULL DEFAULT '0' COMMENT '0:locked ,1:rollbacking',
    `gmt_create`     DATETIME,
    `gmt_modified`   DATETIME,
    PRIMARY KEY (`row_key`),
    KEY `idx_status` (`status`),
    KEY `idx_branch_id` (`branch_id`),
    KEY `idx_xid_and_branch_id` (`xid` , `branch_id`)
    ) ENGINE = InnoDB
    DEFAULT CHARSET = utf8mb4;

CREATE TABLE IF NOT EXISTS `distributed_lock`
(
    `lock_key`       CHAR(20) NOT NULL,
    `lock_value`     VARCHAR(20) NOT NULL,
    `expire`         BIGINT,
    primary key (`lock_key`)
    ) ENGINE = InnoDB
    DEFAULT CHARSET = utf8mb4;

INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('AsyncCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryCommitting', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('RetryRollbacking', ' ', 0);
INSERT INTO `distributed_lock` (lock_key, lock_value, expire) VALUES ('TxTimeoutCheck', ' ', 0);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89

# 最终启动命令

docker rm -f seata-server && \
docker run -d --name seata-server \
-v /etc/localtime:/etc/localtime \
-p 8091:8091 \
-p 7091:7091 \
-v /opt/dockerAllHere/seata/resources:/seata-server/resources  \
-e SEATA_IP=你的seata公网ip \
-e SEATA_PORT=8091 \
seataio/seata-server:1.7.0
1
2
3
4
5
6
7
8
9

-e SEATA_IP=你的seata公网ip \
-e SEATA_PORT=8091 \
上面这两行很重要,不写的话本地使用时会报错: 0101 can not connect to 172.18.0.8:8091 cause:can not register RM,err:can not connect to services-server.

# 访问验证

访问你的IP:7091,账号seata、密码seata

同时nacos中会有seata-server服务

111

编辑 (opens new window)
上次更新: 2023/08/27, 09:49:32
Docker部署PowerJob
Docker部署Redis

← Docker部署PowerJob Docker部署Redis→

最近更新
01
Docker部署RocketMQ
08-28
02
Docker部署MySQL主从
08-24
03
分库分表
08-23
更多文章>
Theme by Vdoing | Copyright © 2023-2023 Mr.Kusch | MIT License | 苏ICP备20030181号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式