阿里巴巴分布式事务利器Seata环境准备
阿里巴巴自從跟SpringCloud共同發起創建微服務開源社區時,開啟了SpringCloud Alibaba分支,而且在生態內提供了一款適用于分布式應用程序(Dubbo、SpringCloud等)的事務框架Seata,該框架經過多個大版本的發布,已經支持MySQL、Oracle這兩種數據庫事務回滾(Rollback)以及提交(Commit)控制,每次發版都會修復一些用戶反饋的Issue以及添加一些新特性。
安裝Seata Server
Seata目前在github托管開源源代碼,源碼地址:https://github.com/seata/seata
Seata每次發版都會提供Server在不同系統下的執行腳本,可以在Linux/Mac/Windows系統環境下直接執行腳本來啟動。
下載Seata Server
我們通過github的releases界面下載seata最新發布的server編譯后的啟動程序,下載地址:https://github.com/seata/seata/releases
根據系統運行環境下載不同的壓縮文件,Mac/Linux可以選擇下載seata-server-xxx.tar.gz,Windows可以選擇下載seata-server-xxx.zip。
解壓Seata Server
在Mac/Linux系統下我們通過以下命令來解壓tar.gz壓縮文件:
?
| 1 2 3 4 | ~ tar -xvf seata-server-xxx.tar.gz ~ cd seata ~ ls bin conf lib LICENSE |
解壓完成后我們得到了幾個文件夾。
-
bin
存放各個系統的seata server啟動腳本
-
conf
存在seata server啟動時所需要的配置信息、數據庫模式下所需要的建表語句
-
lib
運行seata server所需要的依賴包列表
配置Seata Server
seata server所有的配置都在conf文件夾內,該文件夾內有兩個文件我們必須要詳細介紹下。
seata server默認使用file(文件方式)進行存儲事務日志、事務運行信息,我們可以通過-m db腳本參數的形式來指定,目前僅支持file、db這兩種方式。
-
file.conf
該文件用于配置存儲方式、透傳事務信息的NIO等信息,默認對應registry.conf文件內的file方式配置。
-
registry.conf
seata server核心配置文件,可以通過該文件配置服務注冊方式、配置讀取方式。
注冊方式目前支持file 、nacos 、eureka、redis、zk、consul、etcd3、sofa等方式,默認為file,對應讀取file.conf內的注冊方式信息。
讀取配置信息的方式支持file、nacos 、apollo、zk、consul、etcd3等方式,默認為file,對應讀取file.conf文件內的配置。
啟動Seata Server
啟動seata server的腳本位于bin文件內,Linux/Mac環境使用seata-server.sh腳本啟動,Windows環境使用seata-server.bat腳本啟動。
Linux/Mac啟動方式示例如下所示:
?
| 1 | nohup sh seata-server.sh -p 8091 -h 127.0.0.1 -m file &> seata.log & |
通過nohup命令讓seata server在系統后臺運行。
腳本參數:
-
-p
指定啟動seata server的端口號。
-
-h
指定seata server所綁定的主機,這里配置要注意指定的主機IP要與業務服務內的配置文件保持一致,如:-h 192.168.1.10,業務服務配置文件內應該配置192.168.1.10,即使在同一臺主機上也要保持一致。
-
-m
事務日志、事務執行信息存儲的方式,目前支持file(文件方式)、db(數據庫方式,建表語句請查看config/db_store.sql、config/db_undo_log.sql)
查看啟動日志
執行完啟動腳本后要查看日志來確認是否啟動成功,使用如下命令:
?
| 1 2 3 | ~ tail -1000f seata.log ..... 2019-10-10 14:33:51.340 INFO [main]io.seata.core.rpc.netty.AbstractRpcRemotingServer.start:156 -Server started ... |
當我們看到-Server started時并未發現其他錯誤信息,我們的seata server已經啟動成功。
總結
以上是生活随笔為你收集整理的阿里巴巴分布式事务利器Seata环境准备的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringCloud与Seata分布式
- 下一篇: 启动mac版docker自带的k8s