乐趣区

关于seata:seata入门介绍与seataservice部署与验证一

作者:ptti

起源:恒生 LIGHT 云社区

目标:在本地部署一个 SEATA 测试环境,为后续学习做筹备。

一、seata 概述:

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简略易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。

咱们能够简略的将这 4 种事务依据柔性水平进行排序:

随着事务从刚性到柔性变动,有以下几个外围的关注点会发生变化;

l 越来越反对高并发场景;

l 越来越高的革新老本;

l 越来越长的事务反对;

l 越来越弱的一致性束缚;

目前应用的 风行度 状况是:AT > TCC,而且因为 AT 模式号称业务无侵入,所以后续简略入门采纳 AT 模式,不便疾速学习。

在 Seata 的架构中,一共有三个角色

TC (Transaction Coordinator) – 事务协调者,保护全局和分支事务的状态,驱动全局事务提交或回滚。

TM (Transaction Manager) – 事务管理器,定义全局事务的范畴:开始全局事务、提交或回滚全局事务。

RM (Resource Manager) – 资源管理器,治理分支事务处理的资源,与 TC 交谈以注册分支事务和报告分支事务的状态,并驱动分支事务提交或回滚。

其中,TC 为独自部署的 Server 服务端,TM 和 RM 为嵌入到利用中的 Client 客户端。

本文次要解说Server 服务端的部署

二、部署 TC Service

TCService 有多种部署模式,本文应用 mysql 存储事务信息,zk 作为注册核心配置核心。

后期筹备:mysql,zk,seata 软件包

1、数据库初始化,创立数据库 seata,初始化三张数据库表:

global_table,用于存储全局事务信息

branch_table,用于存储分支事务信息

lock_table,用于存储锁信息

过程这里就不赘述了。

2、批改 seata 配置文件数据存储模式,安装包下 conf/file.conf 文件

3、批改 seata 配置文件 conf/registry.conf 应用 zookeeper 作为注册核心

4、启动 seata server

双击 seata 安装包下 bin/seata-server.bat,启动 seata 服务。能够看到控制台打印出 Server started, listen port:
8091,示意服务启动了,监听 8091 端口。

三、应用微服务利用验证分布式事务

1、下载官网 demo,地址如下:https://github.com/seata/seata-samples.git。

2、初始化微服务数据库,每个微服务都要有始终 undo_log 表,用于存储前置镜像后置镜像的数据信息,次要用于分支事务回滚操作。

3、应用 idea 关上示例,dubbo 的 demo,蕴含三个
Dubbo 服务,调用关系如下:

4、批改代码配置信息如下图

次要批改 registry.conf 注册核心应用 zk,用于服务注册发现 TC 服务,

批改 jdbc 配置每个微服务的数据库,

批改微服务之间进行 rpc 通信的注册核心也是应用 zookeeper。

5、开始启动服务

启动 DubboAccountServiceStarter

启动 DubboStorageServiceStarter

启动 DubboOrderServiceStarter

6、测试代码

能够看到 seata AT 模式只须要在分布式事务发动办法上增加一个注解 @GlobalTransactional

就能够实现分布式事务的开发,达到业务的无侵入性,学习老本简直为零

咱们能够通过简略批改代码测试两种状况:

分布式事务失常提交,分布式事务异样回滚,别离察看分支事务的 undolog 表与业务表中的数据。同时能够察看一下 seata-service 中表中的数据。

四、后续:

下面的逻辑看起来比较简单,用于疾速上手是个不错的抉择。网络上能够找到大量的文章 / 博客对相干分布式事务的模式进行粗疏的剖析与论述,相干同学能够自行学习。Seata 在具体应用过程中还是会有很多问题的,心愿可能一起探讨学习。


想向技术大佬们多多取经?开发中遇到的问题何处探讨?如何获取金融科技海量资源?

恒生 LIGHT 云社区,由恒生电子搭建的金融科技业余社区平台,分享实用技术干货、资源数据、金融科技行业趋势,拥抱所有金融开发者。

扫描下方小程序二维码,退出咱们!

退出移动版