云数据库Redis作为高性能的Key-Value数据库,在业务场景中往往承载着大量的重要数据,为保障数据安全性,云数据库Redis提供了多种灾备方案供您选择。

云数据库Redis容灾架构演进

当云数据库Redis实例因不可预料的原因(例如设备故障、机房断电等)发生故障,容灾机制可用于保障数据的一致性和业务可用性。云数据库Redis提供多种灾备方案供您选择,可满足不同的业务场景。

图 1. Redis容灾架构演进
Redis容灾架构演进
灾备方案 灾备级别 说明
单可用区高可用方案 ★★★☆☆ 主备节点部署在同一可用区中的不同机器上,当任一节点发生故障时,由高可用HA(High Availability)系统自动执行故障切换,避免单点故障引起的服务中断。
同城容灾方案 ★★★★☆ 主备节点分别部署在同一地域下两个不同的可用区,当任一可用区因电力、网络等不可抗因素失去通信时,高可用HA系统将执行故障切换,确保整个实例的持续可用。
跨地域容灾方案 ★★★★★ 由多个子实例构成全球分布式实例,所有子实例通过同步通道保持实时数据同步,由通道管理器负责子实例的健康状态监测、主备切换等等异常事件的处理,适用于异地灾备、异地多活、应用就近访问、分摊负载等场景。

单可用区高可用方案

Redis全架构均支持单机房高可用架构。由高可用HA(High Availability)系统监控主备节点的健康状态并自动执行故障切换,避免单点故障引起的服务中断。

部署架构 说明
标准架构(双副本)
图 2. 标准版-双副本高可用架构

标准架构(双副本)实例采用双机主从(Master-Replica)架构,高可用HA模块侦测到主节点故障时,会自动进行主从切换,将Replica提升为Master,而原来的Master恢复连接后会成为新的Replica。

集群架构(双副本)
图 3. 集群版-双副本高可用架构

集群架构(双副本)实例中的数据分片用于承载数据,每个数据分片均为双副本(分别部署在不同机器上)高可用架构,主节点发生故障后,系统会自动进行主备切换保证服务高可用。关于各组件的详细介绍,请参见集群架构

读写分离架构
图 4. 读写分离版高可用架构
  • 自动监控各节点的健康状态,异常时发起主备切换或重搭只读节点,并更新相应的路由及权重信息。
  • Proxy会实时探测只读节点的状态,当出现下述情况时,Proxy会执行流量管控动作:
    • 只读节点处于异常状态:Proxy会降低该节点的服务权重,如果多次无法连接该节点,Proxy会停止该节点的服务(即不再将流量转发至该节点),待该异常被修复后重新启用该节点。
    • 只读节点处于全量同步状态:Proxy会暂时停止该节点的服务,直到该节点完成全量同步。

关于各组件的详细介绍,请参见读写分离架构

同城容灾方案

Redis标准版和集群版提供跨双机房的同城容灾架构。如果业务为单一地域部署,且对容灾要求较高,可在创建云数据库Redis实例时,选择支持同城容灾的可用区(即多可用区)。操作方法,请参见创建实例

图 5. 创建同城容灾实例
创建同城容灾实例

完成创建后,备机房将创建与主机房相同规格的Replica实例,主备机房的实例数据通过专门的复制通道同步。

当主机房出现电力或网络问题时,Replica实例将升级为Master实例,系统调用Config Server接口为Proxy更新路由信息。同时,云数据库Redis优化了Redis的同步机制,在同步位点上借鉴MySQL的GTID,实现了全局Opid,查找Opid的操作通过后台线程无锁进行,发送AOF binlog是异步同步的过程(可限流),保障了Redis服务的性能。

图 6. 同城容灾实例的数据同步过程

跨地域容灾方案

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

  • 可直接创建或指定需要同步的子实例,无需通过业务自身的冗余设计来实现,极大降低业务设计的复杂度,让您专注于上层业务的开发。
  • 可提供跨域复制(Geo-replication)能力,快速实现数据异地灾备和多活。

该功能可应用于跨地域数据同步场景及多媒体、游戏、电商等行业的全球化业务部署等场景。更多介绍,请参见Redis全球分布式缓存简介

图 7. Redis全球分布式缓存架构
全球多活架构