阿里巴巴分佈式事務利器Seata環境準備

阿里巴巴自從跟SpringCloud共同發起創建微服務開源社區時,開啟了 SpringCloudAlibaba分支,而且在生態內提供了一款適用於分佈式應用程序( 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壓縮文件:

<code>~ tar -xvf seata-server-xxx.tar.gz~ cd seata  ~ lsbin  conf  lib  LICENSE/<code>

解壓完成後我們得到了幾個文件夾。

  • 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.confseata 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啟動方式示例如下所示:

<code>nohup sh seata-server.sh -p 8091 -h 127.0.0.1 -m file &> seata.log &/<code>

通過 nohup命令讓 seata server在系統後臺運行。

腳本參數:

  • -p指定啟動 seata server的端口號。
  • -h指定 seata server所綁定的 主機,這裡配置要注意指定的主機IP要與業務服務內的配置文件保持一致,如:-h192.168.1.10,業務服務配置文件內應該配置 192.168.1.10,即使在同一臺主機上也要保持一致。
  • -m事務日誌、事務執行信息存儲的方式,目前支持 file(文件方式)、 db(數據庫方式,建表語句請查看 config/db_store.sql、 config/db_undo_log.sql)

查看啟動日誌

執行完啟動腳本後要查看日誌來確認是否啟動成功,使用如下命令:

<code>~ tail -1000f seata.log  .....  2020-02-05 14:33:51.340 INFO [main]io.seata.core.rpc.netty.AbstractRpcRemotingServer.start:156 -Server started ... /<code>

當我們看到 -Serverstarted時並未發現其他錯誤信息,我們的 seata server已經啟動成功。


分享到:


相關文章: