【分布式事务系列】Seata服务端的注册和统一配置

这是我参与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目录下,执行脚本命令如下:

1
sh复制代码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配置项,配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
conf复制代码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 实现分布式事务。

在整个业务流程中,涉及到三个服务,分别如下:

  1. 订单服务:创建订单
  2. 账户服务:从账户中扣除余额
  3. 库存服务:扣减指定商品的库存服务

用户执行下单请求时,会调用下单业务的REST接口,接口会分别调用库存服务和订单服务,订单服务还会调用账户服务先进行资金冻结,整个流程涉及到这三个服务的分布式事务问题。

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%