說明:本文講解為nacos1.2.1+seata1.2.0/1.1.0版本
一.Linux環境
1.nacos安裝
下載下傳位址:https://github.com/alibaba/nacos/releases
1.下載下傳上傳至linux伺服器,tar -zxvf 解壓
2.進入nacos-server-1.2.1\nacos\conf 修改application.properties
注意這個一定要改成false,否則會有大量的日志
server.tomcat.accesslog.enabled=false
3.去mysql資料庫建立nacos 運作 nacos-mysql.sql腳本 ,之後再運作一下語句spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user= db.password= #注意這個一定要改成false,否則會有大量的日志 server.tomcat.accesslog.enabled=false
4.進入bin目錄 運作 啟動INSERT INTO `users` VALUES ('nacos', '$2a$10$ZLP2nt6d4bVYAcBExmR5d.uyDBlu.M0rSqJu5HvWPi/Tjx/zTkFEm', '1'); INSERT INTO `roles` VALUES ('nacos', 'ROLE_ADMIN'); DROP TABLE IF EXISTS `permissions`; CREATE TABLE `permissions` ( `role` varchar(50) NOT NULL, `resource` varchar(255) NOT NULL, `action` varchar(8) NOT NULL, UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE );
這裡必須要加 -m standalone 否則會出現一下情況sh startup.sh -m standalone
可以看一下日志,日志中提示叢集配置檔案的問題,這裡預設啟動是叢集環境,是以要以單機模式啟動
5.通過 ip位址:8848 通路成功 賬号密碼都是nacos
2.seata安裝
下載下傳位址:http://seata.io/zh-cn/blog/download.html 源碼和啟動包都下載下傳
源碼中配置目錄講解建立seata資料庫,導入伺服器端sql
(特殊提醒:建議把以下字段長度加長,以免開發中出現長度不夠,浪費時間排查)
1.上傳安裝包和源碼中以下檔案到Linux伺服器 2.修改config.txt 中的 配置3.進入nacos 運作 腳本store.mode=db store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true store.db.user= store.db.password=
如果出現以下錯誤。說明找不到配置檔案路徑錯誤,修改執行腳本中的路徑即可 4.檢視nacos配置打入成功 5.修改seata的registry.config中的registry和config 的 type = "nacos" 6.進入seata 的 bin 目錄 啟動seatash /usr/local/seata/nacos/nacos-config.sh -h localhost -p 8848
chmod 777 seata-server.sh nohup ./seata-server.sh &
注意這裡必須nohup打頭,這樣關閉linux連接配接工具服務不會掉,比如對比zookeeper的啟動腳本
(部落客作為非專業運維人員,這個坑也讓我頭疼了兩天)
6.進入nacos檢視是否成功啟動
二.windows環境安
nacos 下載下傳位址:https://github.com/alibaba/nacos/releases
seata下載下傳位址:http://seata.io/zh-cn/blog/download.html
1.建立nacos資料庫,由于seata的源碼中沒有windos環境的配置導入腳本,隻有 .py 和 .sh 可以使用 上面的linux環境預先向資料庫導入好配置 也可以裝一下git輕按兩下運作sh腳本2.建立seata資料庫,導入上面介紹的sql
3.修改好上面Linux環境所需要修改的nacos和seata的配置
4.進入bin 輕按兩下 startup.cmd 啟動nacos
5.進入bin 輕按兩下 seata-server.bat 啟動seata
Seata使用采坑集合
1.問題1:表未加主鍵問題
io.seata.common.exception.ShouldNeverHappenException: [xid:10.8.0.26:8091:2042993961]get tablemeta failed
以上問題原因是參與事物的表未加主鍵,解決方法加上主鍵即可
2.問題2:table_name長度不夠問題
io.seata.core.exception.RmTransactionException:
Response[ TransactionException[branch register request failed.
xid=172.19.131.240:8091:2042995578, msg=Data truncation: Data too long for ]
以上問題原因:此字段長度不夠,原來是30
解決方法改為适合的長度即可
3.問題3:no available service 'default' found, please make sure registry config correct
這裡seata1.2有一個隐藏的坑,會發現源碼中一個是 vgroupMapping 一個是vgroup-mapping 這裡我們統一改成vgroupMapping