1、Seata的安裝配置
1.1、下載
官網(wǎng)下載地址:http://seata.io/zh-cn/blog/download.html
gitHub下載地址:https://github.com/seata/seata/releases
1.2忽肛、解壓
將下載好的壓縮包,解壓到指定目錄文件夾下蹂风。解壓之后的目錄文件結(jié)構(gòu)
1.3乾翔、修改seata解壓目錄中的bin
目錄下的file.conf
文件
1.4、修改seata解壓目錄中的bin
目錄下的registry.conf
文件
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目錄同級
將nacos-config.sh
copy下來的文件放在安裝seata目錄下的conf
目錄
1.7、修改config.txt
中的部分配置
1.8万伤、將seata的配置導(dǎo)入到nacos的配置中心
在conf
目錄下窒悔,使用git將seata的配置導(dǎo)入nacos配置中心,前提是電腦環(huán)境上安裝了git
使用如下命令進(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)入成功
出現(xiàn)如圖信息,說明導(dǎo)入成功宅倒。也可用去Nacos配置中心查看
2攘宙、項(xiàng)目配置
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中配置的要保持一直
項(xiàng)目啟動成功蹭劈,說明上述配置沒錯
seata+nacos配置參考博客:https://blog.csdn.net/qq853632587/article/details/111644295
途中遇到的坑參考博客:https://blog.csdn.net/wdquan19851029/article/details/116751027