阿里巴巴自从跟SpringCloud共同发起建立微服务开源社区时,在生态内提供了一款适用于分布式应用程序(Dubbo
、SpringCloud
)的事务框架Seata
,该框架通过多个大版本的发布,已经支持MySQL
、Oracle
这两种数据库事务回滚(Rollback
)以及提交(Commit
)控制,每次发版都会修复一些用户反馈的Issue
以及添加一些新特性。git
Seata
目前在github
托管开源源代码,源码地址:https://github.com/seata/seatagithub
Seata
每次发版都会提供Server
在不一样系统下的执行脚本,能够在Linux/Mac/Windows
系统环境下直接执行脚原本启动。redis
咱们经过github
的releases
界面下载seata
最新发布的server
编译后的启动程序,下载地址:Seata Server最新版本下载sql
根据系统运行环境下载不一样的压缩文件,Mac/Linux
能够选择下载seata-server-xxx.tar.gz
,Windows
能够选择下载seata-server-xxx.zip
。数据库
在Mac/Linux
系统下咱们经过如下命令来解压tar.gz
压缩文件:bash
~ tar -xvf seata-server-xxx.tar.gz ~ cd seata ~ ls bin conf lib LICENSE
解压完成后咱们获得了几个文件夹。框架
存放各个系统的seata server
启动脚本分布式
存在seata server
启动时所须要的配置信息、数据库模式下所须要的建表语句微服务
运行seata server
所须要的依赖包列表.net
seata server
全部的配置都在conf
文件夹内,该文件夹内有两个文件咱们必需要详细介绍下。
seata server
默认使用file
(文件方式)进行存储事务日志
、事务运行信息
,咱们能够经过-m db
脚本参数的形式来指定,目前仅支持file
、db
这两种方式。
该文件用于配置存储方式
、透传事务信息的NIO
等信息,默认对应registry.conf
文件内的file
方式配置。
seata server
核心配置文件,能够经过该文件配置服务注册方式
、配置读取方式
。
注册方式目前支持file 、nacos 、eureka、redis、zk、consul、etcd三、sofa等方式,默认为file
,对应读取file.conf
内的注册方式信息。
读取配置信息的方式支持file、nacos 、apollo、zk、consul、etcd3等方式,默认为file
,对应读取file.conf
文件内的配置。
启动seata server
的脚本位于bin
文件内,Linux/Mac
环境使用seata-server.sh脚本启动,Windows
环境使用seata-server.bat脚本启动。
Linux/Mac
启动方式示例以下所示:
nohup sh seata-server.sh -p 8091 -h 127.0.0.1 -m file &> seata.log &
经过nohup
命令让seata server
在系统后台运行。
脚本参数:
指定启动seata server
的端口号。
指定seata server
所绑定的主机
,这里配置要注意指定的主机IP要与业务服务内的配置文件保持一致,如:-h 192.168.1.10
,业务服务配置文件内应该配置192.168.1.10
,即便在同一台主机上也要保持一致。
事务日志、事务执行信息存储的方式,目前支持file
(文件方式)、db
(数据库方式,建表语句请查看config/db_store.sql
、config/db_undo_log.sql
)
执行完启动脚本后要查看日志来确认是否启动成功,使用以下命令:
~ tail -1000f seata.log ..... 2019-10-10 14:33:51.340 INFO [main]io.seata.core.rpc.netty.AbstractRpcRemotingServer.start:156 -Server started ...
当咱们看到-Server started
时并未发现其余错误信息,咱们的seata server
已经启动成功。
本文由博客一文多发平台 OpenWrite 发布!