Redis全球分布式缓存(又称全球多活)是基于云数据库Redis自研的多活数据库系统,可轻松支持异地多个站点同时对外提供服务的业务场景,助力企业快速复制阿里巴巴异地多活架构。
背景信息
随着业务的快速发展,在业务分布较广时,如果还采用跨地域远距离访问的架构,将导致访问的延迟大,影响用户体验。借助阿里云的Redis全球分布式缓存功能,可帮助您解决业务因跨地域访问导致延迟大的问题,分布式缓存功能具有如下优势:
- 可直接创建或指定需要同步的子实例,无需通过业务自身的冗余设计来实现,极大降低业务设计的复杂度,让您专注于上层业务的开发。
- 可提供跨域复制(Geo-replication)能力,快速实现数据异地灾备和多活。
该功能可应用于跨地域数据同步场景及多媒体、游戏、电商等行业的全球化业务部署等场景。
应用场景
应用场景 | 说明 |
---|---|
异地多活 | 异地多活是指分布在异地的多个站点同时对外提供服务的业务场景,是高可用架构设计的一种,所有站点可同时对外提供服务,可实现应用就近访问等场景。 |
数据灾备 | 借助子实例间数据双向同步的特性,可实现同城灾备、两地三中心灾备及三地灾备等多种数据灾备场景。 |
负载分摊 | 在某些场景下(例如大型促销),预测可能会有超大QPS请求和访问流量,可其分摊至多个子实例,突破单个实例的负载限制。 |
数据同步 | 实现同一个分布式实例下的子实例双向数据同步,可应用于数据分析或测试等场景。 |
费用说明
创建分布式实例不产生费用,仅会对分布式实例中的子实例收费(与普通Redis实例收费标准一致),详情请参见收费项与价格。
支持的产品系列
性能增强型(本地盘版)。
Redis全球分布式缓存架构
Redis全球分布式缓存是所有分布式子实例(简称子实例)及链路的逻辑集合,所有子实例通过同步通道保持实时数据同步,各组件介绍如下:
- 子实例
-
构成分布式实例的子实例,即独立的
云数据库 Redis实例,是构成多活实例的基本服务单元。所有子实例均可读写,并且相互之间保持实时双向数据同步。分布式实例可提供跨域复制(Geo-replication)能力,您可以在不同的地域创建子实例,实现跨地域容灾和多活的需求。
说明 子实例需为企业版( 性能增强型)。
- 同步通道
-
负责分布式子实例之间实时数据同步的链路,为单向链路,子实例的双向复制由两个对向的同步通道构成。
说明 Redis全球分布式缓存在原生Redis AOF日志的基础上增加了server-id、opid等信息,同步通道通过获取Binlog实现数据同步。
- 通道管理器
- 管理同步通道生命周期,负责子实例上的主备切换、备份重搭等异常事件的处理。
产品优势
优势 | 说明 |
---|---|
同步可靠性高 |
|
同步性能高 |
|
同步正确性高 |
|
全球分布式缓存与DTS双向同步对比
下图以单个方向的数据同步为例,对比架构的区别和时延产生的位置:
全球分布式缓存整体表现优于DTS双向同步方案,详细对比如下表所示。
对比项 | 全球分布式缓存 | DTS双向同步方案 |
---|---|---|
费用 | 创建分布式实例不产生费用,仅会对分布式实例中的子实例收费(与普通Redis实例收费标准一致),详情请参见收费项与价格。 | 您需要为数据同步链路付费。更多信息,请参见DTS产品定价。 |
时延 | 延迟稳定,波动较小。 上图中T2阶段的Replicator具备独立资源,源端的写入量较大的情况下,也能快速获取到待同步的数据(T1+T2的时延基本稳定在400毫秒)。 |
延迟受写入量影响波动较大。 上图T1阶段拉取Binlog容易产生堆积,且T2阶段无SLA保障,如果源端的写入量较大,T1的时延将从10毫秒增至400毫秒~数秒,从而影响拉取效率并影响整个链路。 |
同步目标数 | 最多可支持三个实例间的相互数据同步。 | 可支持更多的实例间数据同步(一对多数据同步),因为拉取到的Binlog可被多个目标实例同时消费。 |
适用场景 | 适合写入量大,对平均时延要求高的客户,例如跨地域多活或单元化业务。
说明 由于跨地域同步会受运营商网络时延的影响,对于即时性业务建议在业务层设置为多端写入。
|
适合写入量不大,就近读取型业务,例如缓存更新。 |