文档

Redis全球多活简介

更新时间:

若业务因跨地域、远距离访问导致访问延迟大,您可以使用云数据库 Redis 版自研的全球多活数据库系统,轻松实现异地多个站点同时对外提供服务。一组全球多活实例最多由三个子实例组成,子实例之间自动进行数据实时同步。全球多活功能可缩短数据与用户之间的地理距离,降低访问延迟并提高程序的响应速度,同时也能实现异地容灾。

背景信息

随着业务的快速发展,在业务分布较广时,如果还采用跨地域远距离访问的架构,将导致访问的延迟大,影响用户体验。借助阿里云的Redis全球多活功能,可帮助您解决业务因跨地域访问导致延迟大的问题,全球多活功能具有如下优势:

  • 可直接创建或指定需要同步的子实例,无需通过业务自身的冗余设计来实现,极大降低业务设计的复杂度,让您专注于上层业务的开发。

  • 可提供跨域复制(Geo-replication)能力,快速实现数据异地灾备和多活。

该功能可应用于跨地域数据同步场景及多媒体、游戏、电商等行业的全球化业务部署等场景。

应用场景

说明

异地多活

异地多活是指分布在异地的多个站点同时对外提供服务的业务场景,是高可用架构设计的一种,所有站点可同时对外提供服务,可实现应用就近访问等场景。

数据灾备

借助子实例间数据双向同步的特性,可实现同城灾备、两地三中心灾备及三地灾备等多种数据灾备场景。

负载分摊

在某些场景下(例如大型促销),预测可能会有超大QPS请求和访问流量,可将流量分摊至多个子实例,突破单个实例的负载限制。

数据同步

实现一组全球多活实例下的子实例双向数据同步,可应用于数据分析或测试等场景。

全球多活架构

image

Redis全球多活是所有全球多活子实例(简称子实例)及链路的逻辑集合,所有子实例通过同步通道保持实时数据同步,各组件介绍如下:

  • 子实例

    • 构成全球多活实例的子实例,即独立的实例,是构成多活实例的基本服务单元。所有子实例均可读写,并且相互之间保持实时双向数据同步。全球多活实例可提供跨域复制(Geo-replication)能力,您可以在不同的地域创建子实例,实现跨地域容灾和多活的需求。

      说明

      子实例需为Tair(Redis企业版)内存型

  • 同步通道

    • 负责子实例之间实时数据同步的链路,为单向链路,子实例的双向复制由两个对向的同步通道构成。

      说明

      Redis全球多活在原生Redis AOF日志的基础上增加了server-id、opid等信息,同步通道通过获取Binlog实现数据同步。

  • 通道管理器

    • 管理同步通道生命周期,负责子实例上的主备切换、备份重搭等异常事件的处理。

产品优势

优势

说明

高可靠

  • 支持断点续传,可容忍天级别的同步中断,避免了原生Redis架构在跨机房或地域进行增量同步的局限性。

  • 自动完成子实例的主备切换、备份重搭等异常事件的处理。

高性能

  • 高吞吐

    • 标准架构下,同步通道单向可达5万TPS。

    • 集群或读写分离架构下,可随Redis数据分片或节点的数量线性扩展。

  • 低延迟

    • 同一洲内的地域间同步,约百毫秒至秒级,平均时延约1.2秒。

    • 跨洲地域间同步,约1~5秒,由链路吞吐和链路的往返时延RTT(Round-trip time)决定。

高正确性

  • Binlog按产生的顺序同步到对端。

  • 支持回环控制,避免Binlog循环同步。

  • 支持抗重放(exactly once),确保被同步的Binlog仅会被执行1次。

费用说明

该功能免费,仅会根据子实例规格收费(与普通Redis实例规格收费标准一致),详情请参见计费项

  • 本页导读 (1)