栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

seata1.5.1安装(nacos作为注册中心,mysql8作为存储中心)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

seata1.5.1安装(nacos作为注册中心,mysql8作为存储中心)

下载

地址: seata1.5.1

解压

安装到D盘,随便你辣

配置

D:/seata-1.5.1/conf/application.yml

seata:
  config:
    # support: nacos, consul, apollo, zk, etcd3
    type: file
  registry:
    # support: nacos, eureka, redis, zk, consul, etcd3, sofa
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      group: SEATA_GROUP
      namespace:
      cluster: default
      username: nacos
      password: nacos
  store:
    # support: file 、 db 、 redis
    mode: db
    db:
      datasource: druid
      db-type: mysql
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://127.0.0.1:3306/seata?rewriteBatchedStatements=true
      user: root
      password: admin
      min-conn: 5
      max-conn: 100
      global-table: global_table
      branch-table: branch_table
      lock-table: lock_table
      distributed-lock-table: distributed_lock
      query-limit: 100
      max-wait: 5000
初始化数据库
  • 新建数据库seata,字符集为utf8mb4

  • 增加distributed_lock表用于seata-server异步任务调度 升级1.5.0前,请注意表结构变更,表结构详情请点击此处

    -- -------------------------------- 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);
    
  • TCC事务模式在1.5.0 增加防悬挂功能,如需由 Seata 框架开启防悬挂,需要提前在客户端业务库中增加此表

    -- -------------------------------- The script use tcc fence  --------------------------------
    CREATE TABLE IF NOT EXISTS `tcc_fence_log`
    (
        `xid`           VARCHAr(128)  NOT NULL COMMENT 'global id',
        `branch_id`     BIGINT        NOT NULL COMMENT 'branch id',
        `action_name`   VARCHAr(64)   NOT NULL COMMENT 'action name',
        `status`        TINYINT       NOT NULL COMMENT 'status(tried:1;committed:2;rollbacked:3;suspended:4)',
        `gmt_create`    DATETIME(3)   NOT NULL COMMENT 'create time',
        `gmt_modified`  DATETIME(3)   NOT NULL COMMENT 'update time',
        PRIMARY KEY (`xid`, `branch_id`),
        KEY `idx_gmt_modified` (`gmt_modified`),
        KEY `idx_status` (`status`)
    ) ENGINE = InnoDB
    DEFAULT CHARSET = utf8mb4;
    
更换mysql依赖包

由于seata1.5.1的mysql连接包是5.x版本的,连接mysql8时,会报错,所以依赖包需要替换为mysql-connector-java-8.0.27.jar

进入D:/seata-1.5.1/conf/target/seata-server.jar包,到BOOT-INF/lib目录下更换即可

启动

启动D:seata-1.5.1binseata-server.bat即可

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/995384.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号