全局事务服务 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

相关文章

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

SpringCloud整合MQ实现消息总线服务方式

《SpringCloud整合MQ实现消息总线服务方式》:本文主要介绍SpringCloud整合MQ实现消息总线服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、背景介绍二、方案实践三、升级版总结一、背景介绍每当修改配置文件内容,如果需要客户端也同步更新,

linux服务之NIS账户管理服务方式

《linux服务之NIS账户管理服务方式》:本文主要介绍linux服务之NIS账户管理服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、所需要的软件二、服务器配置1、安装 NIS 服务2、设定 NIS 的域名 (NIS domain name)3、修改主

Spring Boot 事务详解(事务传播行为、事务属性)

《SpringBoot事务详解(事务传播行为、事务属性)》SpringBoot提供了强大的事务管理功能,通过@Transactional注解可以方便地配置事务的传播行为和属性,本文将详细介绍Spr... 目录Spring Boot 事务详解引言声明式事务管理示例编程式事务管理示例事务传播行为1. REQUI

MySQL中的事务隔离级别详解

《MySQL中的事务隔离级别详解》在MySQL中,事务(Transaction)是一个执行单元,它要么完全执行,要么完全回滚,以保证数据的完整性和一致性,下面给大家介绍MySQL中的事务隔离级别详解,... 目录一、事务并发问题二、mysql 事务隔离级别1. READ UNCOMMITTED(读未提交)2

如何合理使用Spring的事务方式

《如何合理使用Spring的事务方式》:本文主要介绍如何合理使用Spring的事务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、介绍1.1、底层构造1.1.事务管理器1.2.事务定义信息1.3.事务状态1.4.联系1.2、特点1.3、原理2. Sprin

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

springboot项目如何开启https服务

《springboot项目如何开启https服务》:本文主要介绍springboot项目如何开启https服务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录springboot项目开启https服务1. 生成SSL证书密钥库使用keytool生成自签名证书将