Seata服務集成nacos,下面主要講解window環(huán)境下Seata采用nacos完成配置和服務注冊吏奸。
一.前提條件
Seata服務端jar包蕴纳,本demo采用的是seata-server-1.4.0;(官網(wǎng)地址:seata-1.4.0)
nacos服務端采用nacos-1.1.4;(官網(wǎng)地址:nacos,這里不做nacos的講解胸私,用本地已經(jīng)搭建好的服務)
需要python環(huán)境凡人,window下需要安裝python(便于seata推送配置到nacos,官網(wǎng)地址:python-3.9.0);
二. Seata配置修改
Seata包下載后解壓嘹朗,找到對應的conf文件夾,如下圖
本demo咱們采用db的模式诲侮,所以咱們可以刪除掉file.conf,打開文件README-zh.md镀虐,可以找到對應配置的地址:
seata服務端需要的sql腳本地址:服務端mysql建表,本demo采用mysql數(shù)據(jù)庫
需要的config.txt配置文件地址:config地址,并選擇nacos文件夾中的nacos-config.py沟绪,并把兩個文件拷貝到seata中的conf文件夾中刮便,如下圖:
接下來先創(chuàng)建db,打開上述的地址拷貝sql绽慈,并在mysql新建數(shù)據(jù)庫seata執(zhí)行sql恨旱,如下圖:
數(shù)據(jù)庫表建好后,剩下就是修改配置文件坝疼,第一個需要修改的配置文件registry.conf搜贤,本demo采用nacos(采用nacos,只需要保留nacos配置就可以),修改后的文件是:
注意:其中的namespace是nacos里面需要優(yōu)先配置好的命名空間(后面推送配置到nacos需要用到)
第二個需要修改的config.txt文件:修改的文件如下(重要的修改用紅色標注):
三.Seata配置手動推送到nacos
Seata服務端啟動不會主動推送config.txt配置到nacos,需要手動進行推送钝凶,本地是window系統(tǒng)仪芒,需要python腳本進行推送.
進入命令行,切換到Seata服務的conf目錄耕陷,并執(zhí)行如下命令:
python nacos-config.py nacos的ip地址:端口 df2011b0-ed94-4fd2-9a33-baa6f97f5af5
如下:出現(xiàn)init nacos config finished, please start seata-server. 表示推送成功:如下圖
推送成功后掂名,查詢nacos中的配置如下:
可能出現(xiàn)的問題:
? ?1.官網(wǎng)這里給的命令是?python nacos-config.py nacosAddr,會有如下錯誤:
python nacos-config.py nacosAddr, 需要后面新增一個命名空間的uuid
? ? 2.執(zhí)行正確命令啃炸,可能有如下錯誤铆隘。
FileNotFoundError: [Errno 2] No such file or directory: '../config.txt'卓舵,找不到配置文件南用。因為nacos-config.py和config.txt在同目錄,所以找不到掏湾,“../config.txt”需要改為“./config.txt”裹虫;
四.啟動Seata服務
啟動Seata服務,Window服務可以直接點擊根目錄bin下的seata-server.bat融击,或者進入到命令行筑公,啟動seata-server.bat,推薦使用第二種(方便閃退后查看錯誤信息);