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

相关文章

Spring Boot 与微服务入门实战详细总结

《SpringBoot与微服务入门实战详细总结》本文讲解SpringBoot框架的核心特性如快速构建、自动配置、零XML与微服务架构的定义、演进及优缺点,涵盖开发环境准备和HelloWorld实战... 目录一、Spring Boot 核心概述二、微服务架构详解1. 微服务的定义与演进2. 微服务的优缺点三

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

关于DNS域名解析服务

《关于DNS域名解析服务》:本文主要介绍关于DNS域名解析服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录DNS系统的作用及类型DNS使用的协议及端口号DNS系统的分布式数据结构DNS的分布式互联网解析库域名体系结构两种查询方式DNS服务器类型统计构建DNS域

Spring Boot @RestControllerAdvice全局异常处理最佳实践

《SpringBoot@RestControllerAdvice全局异常处理最佳实践》本文详解SpringBoot中通过@RestControllerAdvice实现全局异常处理,强调代码复用、统... 目录前言一、为什么要使用全局异常处理?二、核心注解解析1. @RestControllerAdvice2

Spring事务传播机制最佳实践

《Spring事务传播机制最佳实践》Spring的事务传播机制为我们提供了优雅的解决方案,本文将带您深入理解这一机制,掌握不同场景下的最佳实践,感兴趣的朋友一起看看吧... 目录1. 什么是事务传播行为2. Spring支持的七种事务传播行为2.1 REQUIRED(默认)2.2 SUPPORTS2

MySQL中的锁机制详解之全局锁,表级锁,行级锁

《MySQL中的锁机制详解之全局锁,表级锁,行级锁》MySQL锁机制通过全局、表级、行级锁控制并发,保障数据一致性与隔离性,全局锁适用于全库备份,表级锁适合读多写少场景,行级锁(InnoDB)实现高并... 目录一、锁机制基础:从并发问题到锁分类1.1 并发访问的三大问题1.2 锁的核心作用1.3 锁粒度分

Linux中SSH服务配置的全面指南

《Linux中SSH服务配置的全面指南》作为网络安全工程师,SSH(SecureShell)服务的安全配置是我们日常工作中不可忽视的重要环节,本文将从基础配置到高级安全加固,全面解析SSH服务的各项参... 目录概述基础配置详解端口与监听设置主机密钥配置认证机制强化禁用密码认证禁止root直接登录实现双因素

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试

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

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

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

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