githubEdit

高级篇day02-seata的部署和集成

1. 部署 Seata 的 tc-server

1.1 下载

首先我们要下载 seata-server 包,地址在httparrow-up-right://seata.io/zh-cn/blog/downloadarrow-up-right.arrow-up-righthtmlarrow-up-right

当然,课前资料也准备好了:

image-20210622202357640

1.2 解压

在非中文目录解压缩这个 zip 包,其目录结构如下:

image-20210622202515014

1.3 修改配置

修改 conf 目录下的 registry.conf 文件:

image-20210622202622874

内容如下:

1.4 在 nacos 添加配置

特别注意,为了让 tc 服务的集群可以共享配置,我们选择了 nacos 作为统一配置中心。因此服务端配置文件 seataServer.properties 文件需要在 nacos 中配好。

格式如下:

image-20210622203609227

配置内容如下:

==其中的数据库地址、用户名、密码都需要修改成你自己的数据库信息。==

1.5 创建数据库表

特别注意:tc 服务在管理分布式事务时,需要记录事务相关数据到数据库中,你需要提前创建好这些表。

新建一个名为 seata 的数据库,运行课前资料提供的 sql 文件:

image-20210622204145159

这些表主要记录全局事务、分支事务、全局锁信息:

1.6 启动 TC 服务

进入 bin 目录,运行其中的 seata-server.bat 即可:

image-20210622205427318

启动成功后,seata-server 应该已经注册到 nacos 注册中心了。

打开浏览器,访问 nacos 地址:http://localhost:8848,然后进入服务列表页面,可以看到 seata-tc-server 的信息:

image-20210622205901450

2. 微服务集成 seata

2.1 引入依赖

首先,我们需要在微服务中引入 seata 依赖:

2.2 修改配置文件

需要修改 application.yml 文件,添加一些配置:

3. TC 服务的高可用和异地容灾

3.1 模拟异地容灾的 TC 集群

计划启动两台 seata 的 tc 服务节点:

节点名称
ip 地址
端口号
集群名称

seata

127.0.0.1

8091

SH

seata2

127.0.0.1

8092

HZ

之前我们已经启动了一台 seata 服务,端口是 8091,集群名为 SH。

现在,将 seata 目录复制一份,起名为 seata2

修改 seata2/conf/registry.conf 内容如下:

进入 seata2/bin 目录,然后运行命令:

打开 nacos 控制台,查看服务列表:

image-20210624151150840

点进详情查看:

image-20210624151221747

3.2 将事务组映射配置到 nacos

接下来,我们需要将 tx-service-group 与 cluster 的映射关系都配置到 nacos 配置中心。

新建一个配置:

image-20210624151507072

配置的内容如下:

3.3 微服务读取 nacos 配置

接下来,需要修改每一个微服务的 application.yml 文件,让微服务读取 nacos 中的 client.properties 文件:

重启微服务,现在微服务到底是连接 tc 的 SH 集群,还是 tc 的 HZ 集群,都统一由 nacos 的 client.properties 来决定了。

Last updated

Was this helpful?