全局事务服务 GTS

2023-12-02 13:10
文章标签 服务 全局 事务 gts

本文主要是介绍全局事务服务 GTS,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.什么是全局事务服务GTS

2.为什么需要全局事务服务

3.产品架构

 4.应用场景

SOA 和分布式事务

消息事务

通用分布式事务管理

共享出行

5.产品功能

跨数据库分布式事务

跨服务的分布式事务

消息队列分布式事务

混合的分布式事务

多种事务模式

6.产品优势

超强性能

高可用

多数据库支持

使用便捷


1.什么是全局事务服务GTS

全局事务服务GTS(Global Transaction Service)用于实现分布式环境下,特别是微服务架构下的高性能事务一致性。可以与RDS、MySQL、PostgreSQL等数据源,Spring Cloud、Dubbo、HSF及其他RPC框架,MQ消息队列等中间件产品配合使用,轻松实现分布式数据库事务、多库事务、消息事务、服务链路级事务及各种组合。

2.为什么需要全局事务服务

一个完整的业务往往需要调用多个子业务或服务,随着业务的不断增多,涉及的服务及数据也越来越多,越来越复杂。传统的系统难以支撑,出现了应用和数据库等的分布式系统。分布式系统又带来了数据一致性的问题,从而产生了分布式事务。

3.产品架构

分布式事务是指事务发起者、资源管理器、事务协调者及资源分别位于不同分布式系统的不同节点之上。

GTS的架构如下图所示。

  • GTS服务端:即事务协调器。负责分布式事务的推进,管理事务生命周期。
  • GTS客户端:即事务发起者。通过事务协调器,开启、提交、回滚分布式事务。同时还包含部分资源管理器组件,负责管理和控制资源,与GTS服务器进行交互。
  • 服务框架:GTS可以和服务框架配合使用,管理服务框架中的事务。服务框架可以集成资源管理器组件,管理和控制资源。
  • 资源:包括RDS、DRDS 5.2.x、Oracle 19c、MySQL数据库,以及MQ消息事务。

在单机数据库下很容易维持事务的ACID(Atomicity、Consistency、Isolation和Durability)特性,但在分布式系统中并不容易,GTS可以保证分布式系统中分布式事务的ACID特性。

 4.应用场景

GTS 可应用在多个领域,包括共享出行、微服务、消息以及混合事务。

SOA 和分布式事务

提供跨库、跨服务的分布式事务支持,实现业务链路级别的分布式事务。开发简单,只需要在客户端声明一个注解,用以界定事务边界。

  • 业务链路:为服务链调用提供一致性保证。
  • 多框架兼容:目前兼容 Spring Cloud、Dubbo 和 HSF 等 RPC 框架。
  • 高性能:最高可达到传统分布式事务性能10倍左右;热点数据可以高效处理,无惧数据冲突。

消息事务

GTS 与 MQ 打通,提供事务消息处理能力,可以保证业务链路完成时发送消息,任一阶段异常时回滚消息。开发简单,在客户端声明一个注解,用以界定事务边界,调用 MQ 的事务API发送消息。​

  • 高可靠:在宕机、网络故障等情况下,严格保证数据一致性。
  • 节约成本:
    • 节省运维成本,避免了分布式场景下产生的数据异常。
    • 节省开发成本,像使用单机事务一样使用分布式事务。

通用分布式事务管理

提供通用的分布式事务管理能力,支持微服务框架(Spring Cloud、Dubbo 和 HSF)、数据库(DRDS、RDS、MySQL、Oracle等)、消息中间件(MQ)的组合使用,灵活方便。

  • 多业务场景:通过混合事务,GTS可以应用到金融、电信、电子商务、物流等多个领域。
  • 高可用:GTS 具有同地域高可用特性,即使突发事件造成集群中某一台机器异常,GTS 仍然能够提供原来 1/2 的服务能力。

共享出行

共享出行场景下,通过 GTS 支撑物联网系统、订单系统、支付系统、运维系统、分析系统等各系统应用事务一致性,保证海量订单和数千万流水的交易。

  • 超强性能:可以达到传统分布式事务性能 10 倍左右;热点数据可以高效处理。
  • 高并发:可以满足出行场景下的亿万级并发事务请求。
  • 强一致性:可以在宕机、网络故障等任何情况下保证数据的一致性。

5.产品功能

GTS 提供了跨数据库、跨服务、消息队列和混合分布式事务,并提供多种事务模式。

跨数据库分布式事务

系统分库、分表后,跨库事务几乎无法避免,GTS 可以让应用轻松具备跨库事务处理能力。

跨服务的分布式事务

提供跨库、跨服务的事务支持,实现业务链路级别的分布式事务。

消息队列分布式事务

在多次调用消息系统的场景中,通过 GTS,应用可轻松具备消息事务的处理能力。

混合的分布式事务

GTS 可将各个资源加入事务范畴,实现同时跨服务、数据库、跨消息系统的事务处理能力。

多种事务模式

提供了标准事务模式、自定义事务模式和重试模式,以供选择并应用于不同的业务场景。

6.产品优势

GTS让应用开发者不再需要考虑复杂的事务问题,仅需简单配置一句GTS注解,对已有业务代码无侵入,就能帮您轻松实现超强性能、高可用、多数据源的分布式事务。

超强性能

高达传统分布式事务10倍性能;热点数据高效处理,无惧数据冲突。

高可用

在应用宕机、节点故障等各类异常情况均可保证数据严格一致。

多数据库支持

支持 MySQL、RDS、DRDS、PostgreSQL、Oracle数据库。

说明 除 MySQL 数据库外,GTS 目前仅支持部分数据库版本。DRDS 仅支持5.2.x版本,Oracle 仅支持19c版本。

使用便捷

提供注解、API 等多种接入方式,使用门槛低,节省开发、运维成本。

这篇关于全局事务服务 GTS的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/445469

相关文章

【区块链 + 人才服务】可信教育区块链治理系统 | FISCO BCOS应用案例

伴随着区块链技术的不断完善,其在教育信息化中的应用也在持续发展。利用区块链数据共识、不可篡改的特性, 将与教育相关的数据要素在区块链上进行存证确权,在确保数据可信的前提下,促进教育的公平、透明、开放,为教育教学质量提升赋能,实现教育数据的安全共享、高等教育体系的智慧治理。 可信教育区块链治理系统的顶层治理架构由教育部、高校、企业、学生等多方角色共同参与建设、维护,支撑教育资源共享、教学质量评估、

【区块链 + 人才服务】区块链集成开发平台 | FISCO BCOS应用案例

随着区块链技术的快速发展,越来越多的企业开始将其应用于实际业务中。然而,区块链技术的专业性使得其集成开发成为一项挑战。针对此,广东中创智慧科技有限公司基于国产开源联盟链 FISCO BCOS 推出了区块链集成开发平台。该平台基于区块链技术,提供一套全面的区块链开发工具和开发环境,支持开发者快速开发和部署区块链应用。此外,该平台还可以提供一套全面的区块链开发教程和文档,帮助开发者快速上手区块链开发。

MySql 事务练习

事务(transaction) -- 事务 transaction-- 事务是一组操作的集合,是一个不可分割的工作单位,事务会将所有的操作作为一个整体一起向系统提交或撤销请求-- 事务的操作要么同时成功,要么同时失败-- MySql的事务默认是自动提交的,当执行一个DML语句,MySql会立即自动隐式提交事务-- 常见案例:银行转账-- 逻辑:A给B转账1000:1.查询

基于SpringBoot的宠物服务系统+uniapp小程序+LW参考示例

系列文章目录 1.基于SSM的洗衣房管理系统+原生微信小程序+LW参考示例 2.基于SpringBoot的宠物摄影网站管理系统+LW参考示例 3.基于SpringBoot+Vue的企业人事管理系统+LW参考示例 4.基于SSM的高校实验室管理系统+LW参考示例 5.基于SpringBoot的二手数码回收系统+原生微信小程序+LW参考示例 6.基于SSM的民宿预订管理系统+LW参考示例 7.基于

Lua 脚本在 Redis 中执行时的原子性以及与redis的事务的区别

在 Redis 中,Lua 脚本具有原子性是因为 Redis 保证在执行脚本时,脚本中的所有操作都会被当作一个不可分割的整体。具体来说,Redis 使用单线程的执行模型来处理命令,因此当 Lua 脚本在 Redis 中执行时,不会有其他命令打断脚本的执行过程。脚本中的所有操作都将连续执行,直到脚本执行完成后,Redis 才会继续处理其他客户端的请求。 Lua 脚本在 Redis 中原子性的原因

Golang支持平滑升级的HTTP服务

前段时间用Golang在做一个HTTP的接口,因编译型语言的特性,修改了代码需要重新编译可执行文件,关闭正在运行的老程序,并启动新程序。对于访问量较大的面向用户的产品,关闭、重启的过程中势必会出现无法访问的情况,从而影响用户体验。 使用Golang的系统包开发HTTP服务,是无法支持平滑升级(优雅重启)的,本文将探讨如何解决该问题。 一、平滑升级(优雅重启)的一般思路 一般情况下,要实现平滑

Golang服务平滑重启

与重载配置相同的是我们也需要通过信号来通知server重启,但关键在于平滑重启,如果只是简单的重启,只需要kill掉,然后再拉起即可。平滑重启意味着server升级的时候可以不用停止业务。 我们先来看下Github上有没有相应的库解决这个问题,然后找到了如下三个库: facebookgo/grace - Graceful restart & zero downtime deploy for G

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

Java后端微服务架构下的API限流策略:Guava RateLimiter

Java后端微服务架构下的API限流策略:Guava RateLimiter 大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿! 在微服务架构中,API限流是保护服务不受过度使用和拒绝服务攻击的重要手段。Guava RateLimiter是Google开源的Java库中的一个组件,提供了简单易用的限流功能。 API限流概述 API限流通过控制请求的速率来防止

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建