说明:Seata是蚂蚁金服和阿里巴巴共同开源的,解决分布式事务问题的技术,安装包可在Seata官网提供的GitHub地址下载。
使用
第一步:解压
解压到一个没有中文的路径下,我这里是D盘x86路径下:
第二步:修改配置文件
注册中心可选的技术有很多,如果选的是nacos,只需留下相关的配置即可。可以把配置文件备份一份,然后把配置文件修改成适应于自己的;
如果使用的是nacos,配置文件可修改如下:
registry {
# tc服务所用的注册中心
type = "nacos"
nacos {
# seata tc服务名称
application = "seata-tc-server"
# nacos IP
serverAddr = "127.0.0.1:8848"
# 组名
group = "DEFAULT_GROUP"
# 命名空间
namespace = ""
# 集群名
cluster = "SH"
# nacos登录账号
username = "nacos"
# nacos密码
password = "nacos"
}
}
config {
# 读取tc服务端配置文件的方式
type = "nacos"
# 配置nacos地址等信息
nacos {
# nacos配置
serverAddr = "127.0.0.1:8848"
namespace = ""
group = "DEFAULT_GROUP"
username = "nacos"
password = "nacos"
# 配置文件名
dataId = "seataServer.properties"
}
}
第三步:创建配置文件
在nacos上创建一个配置文件(SeataConfig.properties),该配置文件用于Seata服务启动后,保存分布式事务产生的数据,如快照数据,该配置中关联的数据库应该另外创建一个数据库,不要和业务数据库的数据放在一起。如下:
# 数据存储方式,db代表数据库
store.mode=db
store.db.datasource=druid
store.db.dbType=mysql
# 数据库驱动如果是8.0的,需要加cj
store.db.driverClassName=com.mysql.cj.jdbc.Driver
# 注意后面需要指定时区
store.db.url=jdbc:mysql://127.0.0.1:3306/seata?useUnicode=true&rewriteBatchedStatements=true&serverTimezone=GMT%2b8
store.db.user=root
store.db.password=123456
store.db.minConn=5
store.db.maxConn=30
store.db.globalTable=global_table
store.db.branchTable=branch_table
store.db.queryLimit=100
store.db.lockTable=lock_table
store.db.maxWait=5000
# 事务、日志等配置
server.recovery.committingRetryPeriod=1000
server.recovery.asynCommittingRetryPeriod=1000
server.recovery.rollbackingRetryPeriod=1000
server.recovery.timeoutRetryPeriod=1000
server.maxCommitRetryTimeout=-1
server.maxRollbackRetryTimeout=-1
server.rollbackRetryTimeoutUnlockEnable=false
server.undo.logSaveDays=7
server.undo.logDeletePeriod=86400000
# 客户端与服务端传输方式
transport.serialization=seata
transport.compressor=none
# 关闭metrics功能,提高性能
metrics.enabled=false
metrics.registryType=compact
metrics.exporterList=prometheus
metrics.exporterPrometheusPort=9898
第四步:启动
启动Seata服务,当然前提是需要启动Nacos服务
打开nacos管理平台,在服务列表处可以看到Seata服务
总结
本文介绍Seata的安装和使用,在实际使用时,需要额外注意Seata的配置文件(registry.conf)以及Nacos上提供给Seata的配置文件(SeataConfig.properties)