seata分为三种角色:TC,TM,RM。TC是 seata-server,TM和RM是seata-client。
我们先启动seata-server,以下是运行环境:
seata-server 1.2.0;Naocs1.3;jdk1.8.0;maven 3.6.3;mysql 5.7.24 操作系统Linux;
wget安装:
首先检查linux中是否安装wget(一个下载工具),没有通过yum -y install wget进行安装。
jdk1.8.0安装:
1.通过wget下载jdk1.8.0,并且解压缩到/usr/java目录下
2.配置环境变量 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.测试安装结果 java -versio,如果有其他情况,多个jdk版本之间切换等同学们可自行查询方法。
maven 3.6.3安装:
1.通过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.配置系统变量,执行命令:vi /etc/profile
export MAVEN_HOME=/usr/local/software/dir-maven/apache-maven-3.5.0export PATH=$MAVEN_HOME/bin:$PATH
4.刷新配置文件,执行命令:
source/etc/profile
5.执行mvn -v查看Maven是否安装成功
6.配置maven的仓库地址,vi /maven目录/conf/setting.xml
OK,maven我们也安装完毕。
mysql5.7.24安装(借鉴于:开心跳蚤):
1.检查是否安装过mysql,执行命令:rpm -qa | grep mysql,如果发现有mysql版本输出则代表已安装mysql
2.卸载之前安装的mysql,执行命令:rpm -e --nodeps 第一步输出来的mysql版本号
3.再次执行查询命令,查看是否删除完成。执行命令:rpm -qa | grep mysql 发现没有mysql版本信息输出,代表第二步删除成功,如果依然存在则重复第2步进行删除操作。
4.查询所有mysql对应的文件夹,执行命令:whereis mysql 或者 find / -name mysql,可以看到输出来的都是mysql的目录,第2步我们卸载的是系统安装文件。
5.删除第4步查询出来的文件,执行命令:rm -rf mysql目录地址
6.验证第5步删除是否完成,执行命令:find / -name mysql,如果没有输出则代表我们已经删除干净,否则继续执行第5步进行删除操作。
7.检查mysql用户组和用户是否存在,如果没有则创建,执行命令:先执行用户组创建,在执行用户创建。
groupadd mysqluseradd -r -gmysql mysql
8.通过wget下载mysql安装包,执行命令:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
9.解压第8步下载的mysql压缩包,执行命令:tar xzvf mysql压缩包名字
10.解压缩完毕之后,需要将mysql安装包移动到/usr/local/目录下,且将其重命名为mysql,执行命令:mv mysql安装包 /usr/local/mysql
11.在/usr/local/mysql目录下创建data目录,执行命令:
mkdir /usr/local/mysql/data
12.更改mysql下文件所述用户组合用户权限,执行命令:
chown -R mysql:mysql /usr/local/mysqlchown -R 755 /usr/local/mysql
13.编译安装并初始化mysql,一定要记住初始化输出日志末尾的初始密码,执行命令:
cd /usr/local/mysql/binmysqld --initialize --user=mysql--datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
补充说明:第13步时,可能会出现错误:
出现该问题首先检查该链接库文件有没有安装使用 命令进行核查 rpm -qa|greplibaio 运行命令后发现系统中无该链接库文件 yum install libaio-devel.x86_64安装成功后,继续运行数据库的初始化命令,此时可能会出现如下错误:
执行如下命令后:yum-y install numact执行无误之后,再重新执行第4步初始化命令,无误之后再进行第14步操作!
14.初始化命令成功后一定要将日志末尾的密码复制下来,root@localhost:后的字符串,这是mysql的管理员临时密码。
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.启动mysql服务器,执行命令:
/usr/local/mysql/support-files/mysql.serverstart
如果控制台输出:Starting mysql,说明数据库安装成功。
异常情况如果出现如下提示信息StartingMySQL... ERROR! The server quit without updating PIDfile查看是否存在mysql和mysqld的服务,如果存在,则结束进程,再重新执行启动命令#查询服务ps -ef|grep mysqlps -ef|grep mysqld#结束进程kill -9PID
17.添加软连接,并重启mysql服务
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.开放远程连接
mysql>use mysql;msyql>update user set user.Host='%' whereuser.User='root';mysql>flush privileges;
20.设置开机自启动
1.将服务文件拷贝到init.d下,并重命名为mysql
cp/usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2.赋予可执行权限
chmod +x /etc/init.d/mysqld
3.添加服务
chkconfig --add mysqld
4.显示服务列表
chkconfig --list
nacos1.3安装:
1.下载编译后的压缩包,可以自行下载后通过xftp上传到服务器,下载地址:
https://github.com/alibaba/nacos/tags
2.解压缩,执行命令:
tarzxvf nacos压缩包
3.我们只是简单的部署所以只以单机形式启动,执行命令:
shstartup.sh-mstandalone
4.访问nacos控制台,端口默认8848:
http://ip:8848/nacos/index.html
5.如果访问不通首先查看服务是否正常启动,执行命令:jps,如果正常启动则看服务8848端口是否对外开放(使用阿里云的同学们注意,端口开放需要在阿里云实例里进行配置,看下图:
)
seata1.2安装:
上述铺垫了这么多,终于要安装seata有点小激动吗同学们,接下来我们开始安装seata,当然我们也是仅仅安装一台单机启动。
1.通过wget下载压缩包,执行命令:
wget https://github.com/seata/seata/releases/download/v1.2.0/seata-server-1.2.0.zip
2. 解压缩安装包,执行命令:unzip seata-server-1.2.0.zip
3.后进入seata conf目录进行配置,本案例注册中心使用nacos,配置中心依然使用默认的file,因为是单机的原因,如果是集群建议将配置中心也设置为nacos,便于统一管理,执行命令:cd seata-service/conf
4.打开registry.conf,修改注册中心如下图:
5.打开file.conf,修改server的属性值,store.mode是配置事物回话信息存储方式,file/db,file不支持高可用,也就是集群模式下我们必须配置为db模式,此案例我们也使用db模式,配置入下图所述:
数据库信息是我们刚才安装的Mysql信息,当然用户,数据库需要自行创建一下,seata所需要的三张表也需要创建,脚本:
https://github.com/seata/seata/tree/develop/script/server/db
6.启动seata-server,进入bin目录,这里需要讲一下启动参数:
-h:最终注册到注册中心的ip地址
-p:seata-server监听的端口,通过netty与客户端进行通信
其他三个我们先不关注,最终我们启动命令是(ip自行切换):
./seata-server.sh -h ip -p 8091 &
7. 启动成功之后我们首先通过jps查看服务,看到Server则代表启动成功。然后我们取Nacos控制中心查看下我们的seata-server是否注册成功:
至此为止我们把服务端的东西都已安装完成,且运行正常,下一章我们开始讲解 AT,TCC.SEGA的客户端整合,重点是客户端的参数配置,包含与dubbo,cloud等rpc框架。