Seata 1.4.2 的安装 + Nacos的配置和使用

1、Seata的安装配置

1.1、下载

官网下载地址:http://seata.io/zh-cn/blog/download.html

gitHub下载地址:https://github.com/seata/seata/releases

image-20211111192848004.png

1.2、解压

将下载好的压缩包,解压到指定目录文件夹下。解压之后的目录文件结构


image-20211111193309459.png

1.3、修改seata解压目录中的bin目录下的file.conf文件

image-20211111194545635.png

1.4、修改seata解压目录中的bin目录下的registry.conf文件

image.png

1.5、在本地新建一个seata数据库,导入如下数据库脚本

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;

或者去官网拷贝数据库脚本,网址:https://github.com/seata/seata/blob/1.2.0/script/server/db/mysql.sql

1.6、去官copyconfig.txt配置和nacos-config.sh配置

config.txt 网址:https://github.com/seata/seata/blob/develop/script/config-center/config.txt
nacos-config.sh网址:https://github.com/seata/seata/blob/develop/script/config-center/nacos/nacos-config.sh
config.txt配置放在安装seata的目录下,与bin目录同级

image.png

nacos-config.shcopy下来的文件放在安装seata目录下的conf目录

image.png

1.7、修改config.txt中的部分配置

image.png

1.8、将seata的配置导入到nacos的配置中心

conf目录下,使用git将seata的配置导入nacos配置中心,前提是电脑环境上安装了git

image.png

使用如下命令进行导入:

sh nacos-config.sh -h localhost -p 8848 -g SEATA_GROUP -t 0af6e97b-a684-4647-b696-7c6d42aecce7 -u nacos -w nacos

参数详情:命令解析:-h -p 指定nacos的端口地址;-g 指定配置的分组,注意,是配置的分组;-t 指定命名空间id; -u -w指定nacos的用户名和密码,同样,这里开启了nacos注册和配置认证的才需要指定。
按回车等待配置导入成功


image.png

出现如图信息,说明导入成功。也可用去Nacos配置中心查看


image.png

2、项目配置

Seata和Nacos依赖


  com.alibaba.cloud
  spring-cloud-starter-alibaba-nacos-discovery


  com.alibaba.cloud
  spring-cloud-starter-alibaba-seata
  
    
      io.seata
      seata-spring-boot-starter
    
  


  io.seata
  seata-spring-boot-starter
  1.4.2

application.yml

# seata 配置
seata:
  # 分布式事务分组
  tx-service-group: my_test_tx_group
  # seata配置中心
  config:
    type: nacos
    nacos:
      namespace: ff2305f4-a17d-4d48-809e-4f6a3c69f024  #在安装seata目录下的conf中的register.conf的config节点中下的nacos节点的namespace。如果没有配置 默认public空间
      # nacos配置中心地址
      server-addr: 127.0.0.1:8848
      # 分组
      group: 'SEATA_GROUP'
      # nacos的账号和密码
      userName: 'nacos'
      password: 'nacos'
  # seata的注册中心
  registry:
    type: nacos
    nacos:
      application: seata-server
      server-addr: 127.0.0.1:8848
      namespace: ff2305f4-a17d-4d48-809e-4f6a3c69f024   #在安装seata目录下的conf中的register.conf的register节点中下的nacos节点的namespace。如果没有配置 默认public空间
      userName: 'nacos'
      password: 'nacos'
  service:
    vgroup-mapping:
      my_test_tx_group: default    #这里要特别注意和nacos中配置的要保持一直

项目启动成功,说明上述配置没错


image.png

seata+nacos配置参考博客:https://blog.csdn.net/qq853632587/article/details/111644295
途中遇到的坑参考博客:https://blog.csdn.net/wdquan19851029/article/details/116751027

你可能感兴趣的:(Seata 1.4.2 的安装 + Nacos的配置和使用)