这是我参与11月更文挑战的第10天,活动详情查看:2021最后一次更文挑战
将配置上传到Nacos配置中心
下载Seata源码,在源码包中有一个script文件夹,目录结构如下:
-
client:存放客户端的SQL脚本,参数配置
-
config-center:各个配置中心参数导入脚本,config.txt包含server和client,它为通用参数文件
-
server:服务端数据库脚本及各个容器配置
进入config-server目录,包含config.txt和不同配置中心的目录,这个目录下存放shell脚本和py脚本,config.txt存放的是seata客户端和服务器的所有配置信息。
在config-center/nacos目录下,执行脚本命令如下:
sh nacos-config.sh -h 10.0.100.254 -p 8848 -g SEATA_GROUP
复制代码
这个脚本的作用是把config.txt中的配置信息上传到Nacos配置中心,config.txt中提供的是默认配置,在实际使用时可以先修改该文件的内容,再执行上传操作,上传完成后根据实际情况在nacos控制台上修改相关参数。
Seata服务端修改配置加载位置
进入${SEATA_HOME}/conf目录,修改registry.conf文件中的config配置项,配置如下:
registry {
type = "nacos"
nacos {
application = "seata-server"
serverAddr = "10.0.100.254:8848"
group = "SEATA_GROUP"
namespace = ""
cluster = "default"
username = ""
password = ""
}
}
config {
type = "file"
nacos {
serverAddr = "10.0.100.254:8848"
namespace = ""
group = "SEATA_GROUP"
username = ""
password = ""
dataId = "seataServer.properties"
}
}
复制代码
完成Seata服务端的注册和统一配置的管理。
Spring Cloud集成Seata 实现分布式事务
通过一个电商平台的购买逻辑,基于Spring Cloud环境集成Seata 实现分布式事务。
在整个业务流程中,涉及到三个服务,分别如下:
- 订单服务:创建订单
- 账户服务:从账户中扣除余额
- 库存服务:扣减指定商品的库存服务
用户执行下单请求时,会调用下单业务的REST接口,接口会分别调用库存服务和订单服务,订单服务还会调用账户服务先进行资金冻结,整个流程涉及到这三个服务的分布式事务问题。
近期评论