全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网

应用场景

更新时间:2017-08-16 10:42:48

GTS 可应用在涉及数据库操作的多个领域,包括但不限于金融支付、电信、电子商务、快递物流、广告营销、社交、即时通信、手游、视频、物联网、车联网等,典型的应用场景如下:

  • 解决使用 DRDS 进行分库分表后产生的跨分库事务问题

    DRDS 通过分库分表实现数据水平拆分, 来解决单机关系型数据库扩展性问题. 但是原有单库单表进行分库分表后, 单表的数据被分散到多个库的表中, 原来对单表多行数据进行的变更, 可能会变为对多库多表的数据变更,即单机本地事务变成了分布式事务。

    DRDS 本身不支持分布式事务, 上述场景下再采用原来的单库事务进行操作会导致失败。在 DRDS 中加入 GTS 能够实现这种多个库交易操作的原子性,解决分布式数据库跨库事务的问题

    GTS DRDS 场景

  • 解决跨服务事务问题

    现代 IT 应用中,服务化的模式得到了广泛使用。比如大型电商应用中,为了系统解耦,常常将整个应用划分为多个系统,如商品系统、商家系统、用户系统、账务系统、物流系统等,各个系统会提供各自的服务。

    一个简单的商品加入购物车的操作,会调用商品系统的服务来减掉库存,调用购物车系统的服务增加记录,调用结算系统的服务变更待结算金额等等操作。

    使用 GTS 可以将调用这些服务的操作加入到一个全局事务中,让他们要么同时成功,要么同时失败,保证了各个系统的数据一致性。

    GTS EDAS 场景

  • GTS 配置 MQ 可以快速解决事务消息问题

    有些系统在使用数据库保证系统内数据一致的同时, 也会使用消息队列(MQ) 作为和其他系统间的消息传递, 完成不同系统间的数据一致。

    一个典型的场景,A 系统成功将本地数据 1 保存到数据库后, 通过 MQ 向 B 系统发送一条通知消息, B 系统收到消息后保存与数据 1 关联的数据 2, A、B 两个系统保持数据一致。但是当 A 系统成功保存数据但是未能成功调用消息系统发送通知时, 会导致 A 系统中有数据 1 而 B 系统中没有相应的数据 2, 即 A、B 两个系统出现数据不一致, 造成系统故障。

    对于上述类似场景,GTS 能够将 A 系统向数据库写入数据 1 的本地事务, 和通过 MQ 向 B 系统发送通知放到一个全局事务中, 保证数据写入则消息一定发出,数据未写入则消息一定不会发出。

    GTS MQ 场景

本文导读目录