Seata安裝和配置


我們這里是在Centos7上進行的操作;首先在Seata的github 上下載安裝包,直接選擇最新的releases版本即可,如:seata-server-1.4.1.tar.gz ;windows系統的話直接下載zip包安解壓即可。

配置jdk(如果沒有的話)

注意需要安裝和配置Java環境(使用yum快速安裝和配置jdk yum install java-1.8.0-openjdk.x86_64

# 查看已有jdk版本
yum list java*

# 這里直接安裝jdk8
yum install java-1.8.0-openjdk.x86_64 -y
yum install java-1.8.0-openjdk-devel.x86_64 -y

單機版部署

Seata單機版部署非常簡單,直接解壓啟動即可

tar -zxvf seata-server-1.4.1.tar.gz
cd seata
sh ./bin/seata-server.sh

啟動成功后控制台會顯示相關信息。默認端口是8901,使用文件來記錄日志。

如果開啟了防火牆,要么通過如下命令停止防火牆

systemctl disable firewalld
systemctl stop firewalld

或者設置防火牆開放端口

firewall-cmd --zone=public --add-port=8901/tcp --permanent
firewall-cmd --reload

查看防火牆開放端口:firewall-cmd --list-port

Seata的啟動命令參數說明

完整的啟動命令如下:

sh ./bin/seata-server.sh -p 8091 -h 127.0.0.1 -m file -n 1 -e dev
  • -h : 指定在注冊中心注冊的IP;不指定時獲取當前的 IP,外部訪問部署在雲環境和容器中的server建議指定;
  • -p : 指定 server 啟動的端口; 默認為 8091;
  • -m : 事務日志存儲方式;支持file,db,redis,默認為file;注意redis需seata-server 1.3版本及以上;
  • -n : 用於指定seata-server節點ID;如 1,2,3..., 默認為 1;
  • -e : 指定 seata-server 運行環境;如:dev, test 等, 服務啟動時會使用 registry-dev.conf 這樣的配置;

因此單機版部署使用的完成命令如下:

sh ./bin/seata-server.sh -p 8091 -h 192.168.56.101  -m file

高可用集群版本部署

Seata的高可用依賴於注冊中心、配置中心和數據庫來實現;因此我們需要修改相關的配置。下面我們以nacos和MySQL為例子,Seata-Server使用注冊中心進行集群間的通信,同時將事務數據保存到數據庫中讓整個集群統一使用事務信息。
下面的示例未使用配置中心,如果需要使用的話相關配置見 https://github.com/seata/seata/tree/develop/script/config-center

修改配置文件 registry.conf

將里面的registry節點下的type值改為nacos;然后修改nacos節點中的地址;下面是修改后的示例

registry {
  type = "nacos"
  loadBalance = "RandomLoadBalance"
  loadBalanceVirtualNodes = 10

  nacos {
    application = "seata-server"
    serverAddr = "192.168.56.1:8848"
    group = "SEATA_GROUP"
    namespace = ""
    cluster = "default"
    username = ""
    password = ""
  }
}
config {
  type = "file"
  file {
    name = "file.conf"
  }
}

修改配置文件 file.conf

將里面的mode改為db;然后修改db配置中的MySQL相關配置信息;下面是示例

store {
  mode = "db"
  ## database store property
  db {
    datasource = "druid"
    dbType = "mysql"
    driverClassName = "com.mysql.jdbc.Driver"
    url = "jdbc:mysql://192.168.56.1:3306/seata?useSSL=false&serverTimezone=UTC"
    user = "root"
    password = "123456"
    minConn = 5
    maxConn = 100
    globalTable = "global_table"
    branchTable = "branch_table"
    lockTable = "lock_table"
    queryLimit = 100
    maxWait = 5000
  }
}

創建相關表和數據庫

需要新建一個名為seata數據庫(名稱可以是其他的,只要上面的配置能夠對應上即可),然后創建global_table、branch_table、lock_table三張表;建表語句;

啟動seata服務

由於MySQL-5.x 和MySQL-8.x的有不少的區別,因此seata官方提供2個MySQL的驅動;根據使用數據庫版本來選擇相關的jar包,這里使用的MySQL-8.0的,因此我們將lib包下jdbc中驅動包拷貝一個出來;相關命令如下:

# 拷貝mysql-8的驅動包
cp ./lib/jdbc/mysql-connector-java-8.0.19.jar ./bin/
# 啟動seata服務
sh ./bin/seata-server.sh -p 8091 -h 192.168.56.101

啟動成功后控制台會打印一行如下包含{dataSource-1} inited 的日志信息,則說明已經成功使用數據庫存儲事務日志了。

... com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited

現在到nacos的控制台中的服務管理里面就可以看到seata注冊的服務信息了。

基於docker安裝的方式:https://blog.vchar.top/dcs/1616846400.html

關注微信訂閱號‘起岸星辰’獲取最新資訊


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM