?? seata分為三種角色:TC叨橱,TM攻谁,RM。TC是 seata-server轧叽,TM和RM是seata-client仿滔。
???我們先啟動(dòng)seata-server,以下是運(yùn)行環(huán)境:
seata-server 1.2.0犹芹;Naocs1.3崎页;jdk1.8.0;maven 3.6.3腰埂;mysql 5.7.24 操作系統(tǒng)Linux飒焦;
wget安裝:
首先檢查linux中是否安裝wget(一個(gè)下載工具),沒(méi)有通過(guò)yum -y install wget進(jìn)行安裝屿笼。
jdk1.8.0安裝:
????1.通過(guò)wget下載jdk1.8.0,并且解壓縮到/usr/java目錄下
????2.配置環(huán)境變量? vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131export?JRE_HOME=${JAVA_HOME}/jreexport?CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexport?JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/binexport?PATH=$PATH:${JAVA_PATH}
???3.讓我們更改的配置信息生效 source /etc/profile
???4.測(cè)試安裝結(jié)果?java -versio,如果有其他情況牺荠,多個(gè)jdk版本之間切換等同學(xué)們可自行查詢(xún)方法。
maven 3.6.3安裝:
????1.通過(guò)wget下載maven
wget https://mirror.bit.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
????2.解壓縮下載的maven包
tar zvxf apache-maven-3.6.3-bin.tar.gz
??? 3.配置系統(tǒng)變量驴一,執(zhí)行命令:vi /etc/profile
export MAVEN_HOME=/usr/local/software/dir-maven/apache-maven-3.5.0export PATH=$MAVEN_HOME/bin:$PATH
??? 4.刷新配置文件,執(zhí)行命令:
source/etc/profile
????5.執(zhí)行mvn -v查看Maven是否安裝成功
????6.配置maven的倉(cāng)庫(kù)地址休雌,vi?/maven目錄/conf/setting.xml
<mirrors>? ? <mirror>? ? ? <id>alimaven</id>? ? ? <mirrorOf>*</mirrorOf>? ? ? <name>aliyun maven</name>? ? <url>http://maven.aliyun.com/nexus/content/groups/public/</url>? ? </mirror>? </mirrors>
? ? ? OK,maven我們也安裝完畢。
mysql5.7.24安裝(借鑒于簡(jiǎn)書(shū):開(kāi)心跳蚤):
??? 1.檢查是否安裝過(guò)mysql肝断,執(zhí)行命令:rpm -qa | grep mysql杈曲,如果發(fā)現(xiàn)有mysql版本輸出則代表已安裝mysql
??? 2.卸載之前安裝的mysql,執(zhí)行命令:rpm -e --nodeps 第一步輸出來(lái)的mysql版本號(hào)
??? 3.再次執(zhí)行查詢(xún)命令胸懈,查看是否刪除完成担扑。執(zhí)行命令:rpm ?-qa | grep mysql 發(fā)現(xiàn)沒(méi)有mysql版本信息輸出,代表第二步刪除成功趣钱,如果依然存在則重復(fù)第2步進(jìn)行刪除操作涌献。
??? 4.查詢(xún)所有mysql對(duì)應(yīng)的文件夾,執(zhí)行命令:whereis mysql 或者 find / -name mysql首有,可以看到輸出來(lái)的都是mysql的目錄燕垃,第2步我們卸載的是系統(tǒng)安裝文件枢劝。
??? 5.刪除第4步查詢(xún)出來(lái)的文件,執(zhí)行命令:rm -rf mysql目錄地址
??? 6.驗(yàn)證第5步刪除是否完成卜壕,執(zhí)行命令:find / -name mysql呈野,如果沒(méi)有輸出則代表我們已經(jīng)刪除干凈,否則繼續(xù)執(zhí)行第5步進(jìn)行刪除操作印叁。
??? 7.檢查mysql用戶(hù)組和用戶(hù)是否存在被冒,如果沒(méi)有則創(chuàng)建,執(zhí)行命令:先執(zhí)行用戶(hù)組創(chuàng)建轮蜕,在執(zhí)行用戶(hù)創(chuàng)建昨悼。
groupadd mysqluseradd -r -gmysql mysql
?8.通過(guò)wget下載mysql安裝包,執(zhí)行命令:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
??? 9.解壓第8步下載的mysql壓縮包跃洛,執(zhí)行命令:tar xzvf mysql壓縮包名字
??? 10.解壓縮完畢之后率触,需要將mysql安裝包移動(dòng)到/usr/local/目錄下,且將其重命名為mysql汇竭,執(zhí)行命令:mv mysql安裝包 /usr/local/mysql
??? 11.在/usr/local/mysql目錄下創(chuàng)建data目錄葱蝗,執(zhí)行命令:
mkdir /usr/local/mysql/data
??? 12.更改mysql下文件所述用戶(hù)組合用戶(hù)權(quán)限,執(zhí)行命令:??
chown?-R?mysql:mysql?/usr/local/mysqlchown?-R?755?/usr/local/mysql
??? 13.編譯安裝并初始化mysql细燎,一定要記住初始化輸出日志末尾的初始密碼两曼,執(zhí)行命令:
cd /usr/local/mysql/binmysqld?--initialize?--user=mysql--datadir=/usr/local/mysql/data?--basedir=/usr/local/mysql
補(bǔ)充說(shuō)明:第13步時(shí),可能會(huì)出現(xiàn)錯(cuò)誤:
出現(xiàn)該問(wèn)題首先檢查該鏈接庫(kù)文件有沒(méi)有安裝使用 命令進(jìn)行核查 rpm -qa|greplibaio?運(yùn)行命令后發(fā)現(xiàn)系統(tǒng)中無(wú)該鏈接庫(kù)文件??yum?install??libaio-devel.x86_64安裝成功后玻驻,繼續(xù)運(yùn)行數(shù)據(jù)庫(kù)的初始化命令悼凑,此時(shí)可能會(huì)出現(xiàn)如下錯(cuò)誤:????
?
執(zhí)行如下命令后:yum-y install numact執(zhí)行無(wú)誤之后,再重新執(zhí)行第4步初始化命令璧瞬,無(wú)誤之后再進(jìn)行第14步操作户辫!
??? 14.初始化命令成功后一定要將日志末尾的密碼復(fù)制下來(lái),root@localhost:后的字符串嗤锉,這是mysql的管理員臨時(shí)密碼渔欢。
??? 15.編輯配置文件my.cnf,添加配置如下:
[root@localhostbin]#??vi?/etc/my.cnf[mysqld]datadir=/usr/local/mysql/dataport=?3306sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESsymbolic-links=0max_connections=600innodb_file_per_table=1lower_case_table_names=1
??? 16.啟動(dòng)mysql服務(wù)器瘟忱,執(zhí)行命令:
/usr/local/mysql/support-files/mysql.serverstart
????如果控制臺(tái)輸出:Starting mysql奥额,說(shuō)明數(shù)據(jù)庫(kù)安裝成功。
異常情況如果出現(xiàn)如下提示信息StartingMySQL...?ERROR!?The?server?quit?without?updating?PIDfile查看是否存在mysql和mysqld的服務(wù)酷誓,如果存在披坏,則結(jié)束進(jìn)程,再重新執(zhí)行啟動(dòng)命令#查詢(xún)服務(wù)ps -ef|grep mysqlps -ef|grep mysqld#結(jié)束進(jìn)程kill -9PID
????17.添加軟連接盐数,并重啟mysql服務(wù)
ln-s?/usr/local/mysql/support-files/mysql.server?/etc/init.d/mysqlln-s /usr/local/mysql/bin/mysql /usr/bin/mysqlservice?mysql?restart
????18.登錄mysql修改管理員密碼
mysql?-u?root?-pEnter?password:mysql>set?password?for?root@localhost?=password('yourpass');
????19.開(kāi)放遠(yuǎn)程連接
mysql>use?mysql;msyql>update?user?set?user.Host='%'?whereuser.User='root';mysql>flush?privileges;
????20.設(shè)置開(kāi)機(jī)自啟動(dòng)
????1.將服務(wù)文件拷貝到init.d下,并重命名為mysql
cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
????2.賦予可執(zhí)行權(quán)限
chmod +x /etc/init.d/mysqld
????3.添加服務(wù)
chkconfig --add mysqld
????4.顯示服務(wù)列表
chkconfig?--list?
nacos1.3安裝:
??? 1.下載編譯后的壓縮包伞梯,可以自行下載后通過(guò)xftp上傳到服務(wù)器玫氢,下載地址:
https://github.com/alibaba/nacos/tags
2.解壓縮帚屉,執(zhí)行命令:
tarzxvf nacos壓縮包
3.我們只是簡(jiǎn)單的部署所以只以單機(jī)形式啟動(dòng),執(zhí)行命令:
shstartup.sh-mstandalone
??? 4.訪(fǎng)問(wèn)nacos控制臺(tái)漾峡,端口默認(rèn)8848:
http://ip:8848/nacos/index.html
??? 5.如果訪(fǎng)問(wèn)不通首先查看服務(wù)是否正常啟動(dòng)攻旦,執(zhí)行命令:jps,如果正常啟動(dòng)則看服務(wù)8848端口是否對(duì)外開(kāi)放(使用阿里云的同學(xué)們注意生逸,端口開(kāi)放需要在阿里云實(shí)例里進(jìn)行配置,看下圖:
)
seata1.2安裝:
????上述鋪墊了這么多牢屋,終于要安裝seata有點(diǎn)小激動(dòng)嗎同學(xué)們,接下來(lái)我們開(kāi)始安裝seata槽袄,當(dāng)然我們也是僅僅安裝一臺(tái)單機(jī)啟動(dòng)烙无。
??? 1.通過(guò)wget下載壓縮包,執(zhí)行命令:
wget?https://github.com/seata/seata/releases/download/v1.2.0/seata-server-1.2.0.zip
??? 2. 解壓縮安裝包遍尺,執(zhí)行命令:unzip seata-server-1.2.0.zip
??? 3.后進(jìn)入seata conf目錄進(jìn)行配置截酷,本案例注冊(cè)中心使用nacos,配置中心依然使用默認(rèn)的file,因?yàn)槭菃螜C(jī)的原因乾戏,如果是集群建議將配置中心也設(shè)置為nacos迂苛,便于統(tǒng)一管理,執(zhí)行命令:cd seata-service/conf
??? 4.打開(kāi)registry.conf鼓择,修改注冊(cè)中心如下圖:
???? 5.打開(kāi)file.conf三幻,修改server的屬性值,store.mode是配置事物回話(huà)信息存儲(chǔ)方式呐能,file/db赌髓,file不支持高可用,也就是集群模式下我們必須配置為db模式催跪,此案例我們也使用db模式锁蠕,配置入下圖所述:
數(shù)據(jù)庫(kù)信息是我們剛才安裝的Mysql信息,當(dāng)然用戶(hù)懊蒸,數(shù)據(jù)庫(kù)需要自行創(chuàng)建一下荣倾,seata所需要的三張表也需要?jiǎng)?chuàng)建,腳本:
https://github.com/seata/seata/tree/develop/script/server/db
??? 6.啟動(dòng)seata-server骑丸,進(jìn)入bin目錄舌仍,這里需要講一下啟動(dòng)參數(shù):
?????-h:最終注冊(cè)到注冊(cè)中心的ip地址
-p:seata-server監(jiān)聽(tīng)的端口,通過(guò)netty與客戶(hù)端進(jìn)行通信
????其他三個(gè)我們先不關(guān)注,最終我們啟動(dòng)命令是(ip自行切換):?
./seata-server.sh?-h?ip?-p?8091?&
??? 7. 啟動(dòng)成功之后我們首先通過(guò)jps查看服務(wù)通危,看到Server則代表啟動(dòng)成功铸豁。然后我們?nèi)acos控制中心查看下我們的seata-server是否注冊(cè)成功:
至此為止我們把服務(wù)端的東西都已安裝完成,且運(yùn)行正常菊碟,下一章我們開(kāi)始講解 AT,TCC.SEGA的客戶(hù)端整合节芥,重點(diǎn)是客戶(hù)端的參數(shù)配置,包含與dubbo,cloud等rpc框架。