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

1、Seata的安裝配置

1.1、下載

官網(wǎng)下載地址:http://seata.io/zh-cn/blog/download.html

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

image-20211111192848004.png

1.2、解壓

將下載好的壓縮包,解壓到指定目錄文件夾下。解壓之后的目錄文件結(jié)構(gòu)


image-20211111193309459.png

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

image-20211111194545635.png

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

image.png

1.5、在本地新建一個seata數(shù)據(jù)庫,導(dǎo)入如下數(shù)據(jù)庫腳本

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;

或者去官網(wǎng)拷貝數(shù)據(jù)庫腳本,網(wǎng)址:https://github.com/seata/seata/blob/1.2.0/script/server/db/mysql.sql

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

config.txt 網(wǎng)址:https://github.com/seata/seata/blob/develop/script/config-center/config.txt
nacos-config.sh網(wǎng)址: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的配置導(dǎo)入到nacos的配置中心

conf目錄下,使用git將seata的配置導(dǎo)入nacos配置中心,前提是電腦環(huán)境上安裝了git

image.png

使用如下命令進(jìn)行導(dǎo)入:

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

參數(shù)詳情:命令解析:-h -p 指定nacos的端口地址;-g 指定配置的分組,注意,是配置的分組;-t 指定命名空間id; -u -w指定nacos的用戶名和密碼,同樣,這里開啟了nacos注冊和配置認(rèn)證的才需要指定。
按回車等待配置導(dǎo)入成功


image.png

出現(xiàn)如圖信息,說明導(dǎo)入成功。也可用去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:
  # 分布式事務(wù)分組
  tx-service-group: my_test_tx_group
  # seata配置中心
  config:
    type: nacos
    nacos:
      namespace: ff2305f4-a17d-4d48-809e-4f6a3c69f024  #在安裝seata目錄下的conf中的register.conf的config節(jié)點(diǎn)中下的nacos節(jié)點(diǎn)的namespace。如果沒有配置 默認(rèn)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節(jié)點(diǎn)中下的nacos節(jié)點(diǎn)的namespace。如果沒有配置 默認(rèn)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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容