云计算百科
云计算领域专业知识百科平台

分布式事务:搭建 Seata 服务器?

在上节课中,我提到过一个叫Transaction Coordinator的组件,它在分布式事务中扮演了一个协调者的角色,用来保证事务的最终一致性。这个昨日配角摇身一变就成了今天的主角,还有了一个新的名字:Seata Server。这节课我就带你了解Seata Server的交互模型,再手把手带你搭建一个Seata Server。

但凡名字里带个Server的组件,不用想就知道这一定又是一个“中间件”,Seata Server就是这么一个中心化的、单独部署的事务管理中间件。在开始搭建Seata Server之前,我们先来了解一下Seata Server在整个分布式事务方案中是如何跟各个应用交互的吧。

图片

在上面的图里,除了微服务和Seata以外,还多了Nacos和MySQL的影子,它俩来凑什么数呢?

在分布式事务的执行过程中,各个微服务都要向Seata汇报自己的分支事务状态,亦或是接收来自Seata的Commit/Rollback决议,这些微服务是如何勾搭上Seata Server的呢?答案就是服务发现。Seata Server把自己作为了一个微服务注册到了Nacos,各个微服务利用Nacos的服务发现能力获取到Seata Server的地址。如此一来,微服务到Seata Server的通信链路就构建起来了。

咱前面说过Seata Server做的是事务管理的活,那么一个分布式事务从开始到结束的整个生命周期中,你总得记录些分支事务/全局事务的执行状态吧?数据持久化的工作,咱就交给Seata背后的MySQL数据源了。

好,我们已经大致了解了Seata Server和微服务组件之间的交互方式,估摸着你迫不及待想要了解Seata的底层原理了。咱不着急,这些个原理啥的,现在讲得越多你就越迷糊。这节课我们来点轻松的,我先带你把Seata服务器搭建起来,等这块整明白之后,后面课程里再学习Seata的底层原理。

搭建Seata服务器

Seata官方已经给我们备好了可执行的安装文件,你可以到Seata Github地址的Release页面下载。为了避免各种兼容性问题,我推荐你下载seata-server-1.4.2这个版本,和我用的版本保持一致。下载好之后在本地解压,然后我们需要对其中的配置文件做一番更改。

更改持久化配置

我们打开Seata安装目录下的conf文件夹,找到file.conf.example文件,把里面的内容复制一下并且Copy到file.conf里。我们需要在file.conf文件里更改两个地方。

第一个改动点是持久化模式。Seata支持本地文件和数据库两种持久化模式,前者只能用在本地开发阶段,因为基于本地文件的持久化方案并不具备高可用能力。我们这里需要把store节点下的mode属性改成“db”。

## transaction log store, only used in server side
store {

## store mode: file、db
## 【改动点01 替换成db类型
mode = \”db\”

第二个改动点就是DB的连接方式。我们需要把本地的connection配置到store节点下的db节点里。你可以参考下面的代码。

store {

mode = \”db\”

## 【改动点02 更改参数
## database store property
db {

## the implement of javax.sql.DataSource, such as DruidDataSource(druid)/BasicDataSource(dbcp) etc.
datasource = \”druid\”
## mysql

赞(0)
未经允许不得转载:网硕互联帮助中心 » 分布式事务:搭建 Seata 服务器?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!