一,什么是seata?
Seata:Simpe Extensible Autonomous Transcaction Architecture,
是阿里中間件,開源的分布式事務解決方案。
前身是阿里的Fescar
官方站:
http://seata.io/zh-cn/
官方代碼地址:
https://github.com/seata/seata
官方文檔站:
http://seata.io/zh-cn/docs/overview/what-is-seata.html
各版本的release下載地址:
https://github.com/seata/seata/releases
說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest
對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/
說明:作者:劉宏締 郵箱: 371125307@qq.com
二,安裝seata前准備java環境:
因為seata是基於java開發的,所以需要先在機器上准備java環境
1,下載java
從官方站下載:
https://www.oracle.com/cn/java/technologies/javase-downloads.html
下載完成后查看當前目錄:
[root@localhost java]# pwd /usr/local/source/java [root@localhost java]# ls jdk-14.0.2_linux-x64_bin.tar.gz
2,解壓和安裝:
解壓:
[root@localhost java]# tar -zxvf jdk-14.0.2_linux-x64_bin.tar.gz
把解壓后的jdk目錄,移動到安裝目錄/usr/local/soft目錄下:
[root@localhost java]# mv jdk-14.0.2 /usr/local/soft/
3,配置java
編輯profile文件:
[root@localhost java]# vi /etc/profile
內容:
export JAVA_HOME=/usr/local/soft/jdk-14.0.2 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
使變量生效:
[root@localhost java]# source /etc/profile
4,測試java的安裝效果
[root@localhost liuhongdi]# java --version java 14.0.2 2020-07-14 Java(TM) SE Runtime Environment (build 14.0.2+12-46) Java HotSpot(TM) 64-Bit Server VM (build 14.0.2+12-46, mixed mode, sharing)
三,下載seata:
1,用wget命令下載
創建一個源文件存放目錄:/usr/local/source/seata,
在這個目錄下下載和解壓
[root@localhost seata]# wget https://github.com/seata/seata/releases/download/v1.3.0/seata-server-1.3.0.tar.gz
2,解壓后並移動到安裝目錄:
[root@localhost seata]# ls seata-server-1.3.0.tar.gz [root@localhost seata]# tar -zxvf seata-server-1.3.0.tar.gz [root@localhost seata]# mv seata /usr/local/soft/ [root@localhost seata]# cd /usr/local/soft/seata/
四,配置seata
1,生成日志目錄:
[root@localhost seata]# mkdir /data/seata [root@localhost seata]# mkdir /data/seata/logs [root@localhost seata]# chmod 777 /data/seata/logs
2,進入安裝目錄下
[root@localhost seata]# cd conf/ [root@localhost conf]# vi logback.xml
修改內容:
修改LOG_HOME為我們創建的目錄
<property name="LOG_HOME" value="/data/seata/logs”/>
3,創建seata的gc日志目錄
[root@localhost seata]# pwd /usr/local/soft/seata [root@localhost seata]# mkdir logs
說明:seata默認會使用這個目錄保存java運行時的gclog
五,啟動並檢測是否運行中
1,啟動
[root@localhost seata]# nohup sh ./bin/seata-server.sh -p 8091 > /data/seata/logs/seata_runtime.out 2>&1 & [1] 2062
2,檢查查端口是否在監聽中:
[root@localhost bin]# telnet localhost 8091 Trying ::1... Connected to localhost. Escape character is '^]'. ^] telnet> quit Connection closed.
六,用systemctl管理seata
1,創建seata啟動文件:保存到安裝目錄/bin目錄下
[root@localhost seata]# cd bin/ [root@localhost bin]# vi seata-start.sh [root@localhost bin]# more seata-start.sh #!/bin/bash sh /usr/local/soft/seata/bin/seata-server.sh -p 8091 [root@localhost bin]# chmod +x seata-start.sh
2,創建service文件
[root@localhost bin]# vi /usr/lib/systemd/system/seata.service
內容:
[Unit] Description=seata-server After=syslog.target network.target [Service] Type=simple ExecStart=/usr/local/soft/seata/bin/seata-start.sh Restart=always PrivateTmp=true [Install] WantedBy=multi-user.target
3,啟動service
[root@localhost bin]# systemctl daemon-reload
[root@localhost bin]# systemctl start seata.service
4,查看是否運行中?
[root@localhost ~]# systemctl status seata.service ● seata.service - seata-server Loaded: loaded (/usr/lib/systemd/system/seata.service; disabled; vendor preset: disabled) Active: active (running) since Sat 2020-08-15 09:59:03 CST; 2s ago Main PID: 1726 (seata-start.sh) Tasks: 29 (limit: 4642) Memory: 145.7M CGroup: /system.slice/seata.service ├─1726 /bin/bash /usr/local/soft/seata/bin/seata-start.sh └─1727 /usr/bin/java -server -Xmx2048m -Xms2048m -Xmn1024m -Xss512k -XX:SurvivorRatio=10 ...
可以看到狀態為 active (running)
5,用ss查看端口:
[root@localhost ~]# ss -lntp State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 1024 *:8091 *:* users:(("java",pid=1727,fd=176))
七,查看seata-server可用的參數
用--help
[root@localhost ~]# /usr/local/soft/seata/bin/seata-server.sh --help
可以看到參數:
... Usage: sh seata-server.sh(for linux and mac) or cmd seata-server.bat(for windows) [options] Options: --host, -h The ip to register to registry center. --port, -p The port to listen. Default: 8091 --storeMode, -m log store mode : file, db --serverNode, -n server node id, such as 1, 2, 3.it will be generated according to the snowflake by default --seataEnv, -e The name used for multi-configuration isolation. --help
八,查看linux的版本 :
[root@localhost java]$ cat /etc/redhat-release CentOS Linux release 8.2.2004 (Core)