美文网首页SpringCloud Alibaba专题
Seata 1.4.2 的安装 + Nacos的配置和使用

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

作者: Laity_9c91 | 来源:发表于2021-11-13 13:25 被阅读0次

    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依赖

    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-starter-alibaba-seata</artifactId>
      <exclusions>
        <exclusion>
          <groupId>io.seata</groupId>
          <artifactId>seata-spring-boot-starter</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>io.seata</groupId>
      <artifactId>seata-spring-boot-starter</artifactId>
      <version>1.4.2</version>
    </dependency>
    

    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的配置和使用

        本文链接:https://www.haomeiwen.com/subject/rlaazltx.html