摘要:GaussDB(for Redis)的双活解决方案,支持同域主备、同域双主、异地主备、异地双主四大应用场景,提供了安全可靠的容灾能力。

一场火灾引发的思考

2021年3月10日,欧洲某云服务提供商的数据中心发生火灾,当地消防部门出动上百名消防员才将大火扑灭,受影响的服务器共托管了约360万个网站,火灾过后,这些受影响的网站大多处于关闭状态。

机房火灾、网络异常、电力故障、自然灾害等极端场景,对互联网业务的连续运行有着巨大的威胁。

在安全组、反亲和、多可用区部署等能力加持下,如今的云服务已能够给客户业务带来比“自建”更可靠的保障。在面对上述极端灾害场景中,云服务也能提供更高级的防范方案——双活容灾。

谁说Redis不能双活容灾?

今天我们来聊聊全世界机房里的主力数据库服务——Redis。作为业务刚需,Redis有两大类典型应用场景:

1)缓存

Redis作为数据库缓存,搭配MySQL或其他关系型数据库使用。一旦缓存故障失效,高并发的流量请求将对下游数据库造成严重冲击,无法继续支撑高并发业务,雪崩甚至可能导致系统完全不可用。

2)主数据库

Redis独立存储核心数据,兼顾持久化与高并发访问。一旦Redis发生严重故障,将造成用户核心数据丢失以及关键业务不可用。

可见Redis的稳定性是企业要考虑的TOP问题。但是由于数据无法可靠存储、架构不稳定等原因,开源Redis很难像MySQL那样做出稳定可靠的双活系统,这也是国内云厂商很少主推Redis双活容灾的原因。

在华为内部,比如华为商城、流程IT平台等大型业务,对数据库(尤其是MySQL、Redis)都有很高的可靠性要求。在与这类企业级项目的联合演进过程中,云原生数据库GaussDB(for Redis)推出了企业级的双活容灾方案,支持四大应用场景,为业务的持续运行保驾护航。

企业级双活容灾,要看GaussDB(for Redis)

GaussDB(for Redis)的双活容灾是基于GaussDB NoSQL存算分离架构,建立可靠的数据传输链路,实现两个实例间数据同步。如果实例A遇到突发故障导致不可用,客户的业务可以快速接入实例B,避免业务长时间受损。

从原理上看,数据库实例内增加高可靠性的Rsync数据同步服务,实时监控WAL增量日志,解析后将数据同步到目标实例。

上图中实线表示实例A向实例B同步数据的路径,虚线表示实例B向实例A同步数据的路径,双活解决方案支持配置为单向同步或双写同步。实例A和实例B可以部署在同一个Region,也可以部署在不同的Region。
因此,将两个GaussDB(for Redis)实例的部署位置和主备角色进行不同组合,能搭建出不同形态的双活容灾组网,客户可以根据自身的业务规划和使用场景自由选择。

GaussDB(for Redis)双活容灾:四大应用场景

接下来我们详细聊一下GaussDB(for Redis)双活容灾的不同组网形态。

同域双活部署在同一Region,通过对等连接打通网络,对等连接无带宽费用,同步时延在毫秒级,又分为同域主备模式和同域双主模式。

异地双活部署在不同Region,可以是同一城市的不同Region互通,也可以是全球不同城市互通,通过跨域的云连接打通网络,需要根据业务的写流量来配置合适大小的带宽。

综上,GaussDB(for Redis)双活容灾共支持四大应用场景:

同域主备模式

在同域主备模式下,主实例可读可写,备实例只读,数据从主实例单向同步到备实例。如果主实例发生故障,可以将备实例角色变更为主实例,业务继续从新的主实例接入处理读写操作。

同域主备模式适合在同Region低成本获取容灾能力、有读写分离诉求的业务场景。相比同域双主模式具备更高的数据一致性,不担心双实例写冲突的问题,相比异地双活的成本更低。

同域双主模式

在同域双主模式下,两个实例都是可读可写,任一实例都可以发起数据同步,双实例不涉及业务切流。

同域双主模式适合在同Region低成本获取容灾能力、有双写诉求的业务场景。相比同域主备模式,两个实例的计算节点都在处理读写业务,资源利用率更高,但需要在业务层面避免key冲突的问题,相比异地双活的成本更低。

异地主备模式

在异地主备模式下,主实例可读可写,备实例只读,数据单向同步,主实例故障时由备实例继续处理业务。

异地主备模式适合期望有跨Region容灾能力、有读写分离诉求的业务场景,例如金融服务或核心用户数据等。相比异地双主模式具备更高的数据一致性,不担心双实例写冲突的问题,相比同域双活具备跨Region容灾能力。

异地双主模式

在异地双主模式下,两个实例都是可读可写,数据双向同步,任一实例发生故障则由另一实例继续处理业务。

异地双主模式适合期望有跨Region容灾能力、有双写诉求、或者异地业务希望在就近Region接入数据库获取更低时延的业务场景,例如广告竞价、推荐系统等。相比异地主备模式,资源利用率更高,需要避免key冲突的问题,相比同域双活具备跨Region容灾能力。

双活容灾方案已在超大规格集群上验证稳定可靠

华为内部某重要业务部门在超大规模集群(1w+个vCPU算力,1000+TB数据量)上,使用了基于GaussDB NoSQL统一架构的双活解决方案,在故障演练中进行了一系列严苛的可靠性测试,其中包括模拟机房断电、网络故障等场景,最终,GaussDB(for Redis)的双活容灾能力,充分满足了业务部门对RTO和RPO等指标的严格要求。

总结

综上所述,GaussDB(for Redis)的双活解决方案,支持同域主备、同域双主、异地主备、异地双主四大应用场景,提供了安全可靠的容灾能力,具体亮点如下:

  1. 组网灵活,按需搭建双活容灾系统
  2. 支持秒级快照,快速搭建双活关系
  3. 支持实时同步最新数据,同Region时延毫秒级
  4. 采用多线程异步并发模式发送数据,按Key保序
  5. 基于WAL单调递增特性,采用滑窗机制确保可靠传输
  6. 采用Reactor事件管理的机制,全流程批量高效发送
  7. 支持异常重传,解决网络抖动导致的丢包或延迟现象
  8. 支持断点续传,每个DB持久化应答过的同步日志序号,在发生宕机、网络隔离、进程重启等故障场景,可从该位置进行续传。

附录

  • 本文作者:华为云数据库GaussDB(for Redis)团队
  • 更多产品信息,欢迎访问官方博客:bbs.huaweicloud.com/blogs/248875

点击关注,第一时间了解华为云新鲜技术~

GaussDB(for Redis)双活容灾支持4大应用场景,为业务安全保驾护航的更多相关文章

  1. 华为云计算IE面试笔记-请描述华为容灾解决方案全景图,并解释双活数据中心需要从哪些角度着手考虑双活设计

    容灾全景图: 按照距离划分:分为本地容灾 同城容灾 异地容灾  本地容灾包括本地高可用和本地主备.(本数据中心的两机房.机柜) 本地高可用这个方案为了保持业务的连续性,从两个层面来考虑: ①一个是从主 ...

  2. 【转载】redis容灾策略

    版权声明:转载请注明出处 http://blog.csdn.net/irean_lau. https://blog.csdn.net/Irean_Lau/article/details/5136027 ...

  3. 传统业务上云:跨AZ容灾架构解析

    本文由  网易云发布. 数字化转型浪潮之下,采用云计算服务提升业务敏捷性.降低运维成本,成为了传统企业的优选方案.网易云资深解决方案架构师张亮通过某物流企业客户的实际案例,分享了传统业务系统在云上的架 ...

  4. 即时通讯系统为什么选择GaussDB(for Redis)?

    摘要:如果你需要一款稳定可靠的高性能企业级KV数据库,不妨试试GaussDB(for Redis). 每当网络上爆出热点新闻,混迹于各个社交媒体的小伙伴们全都开启了讨论模式.一条消息的产生是如何在群聊 ...

  5. 深度评测丨 GaussDB(for Redis) 大 Key 操作的影响

    本文分享自华为云社区<墨天轮评测:GaussDB(for Redis)大Key操作的影响>,作者: 高斯 Redis 官方博客. 在前一篇文章<墨天轮评测:GaussDB(for R ...

  6. QQ 相册后台存储架构重构与跨 IDC 容灾实践

    欢迎大家前往云加社区,获取更多腾讯海量技术实践干货哦~ 作者简介:xianmau,2015 年加入腾讯 TEG 架构平台部,一直负责 QQ 相册平台的维护和建设,主导相册上传架构重构和容灾优化等工作. ...

  7. 从数据仓库双集群系统模式探讨,看GaussDB(DWS)的容灾设计

    摘要:本文主要是探讨OLAP关系型数据库框架的数据仓库平台如何设计双集群系统,即增强系统高可用的保障水准,然后讨论一下GaussDB(DWS)的容灾应该如何设计. 当前社会.企业运行当中,大数据分析. ...

  8. 主从集群搭建及容灾部署redis

    redis主从集群搭建及容灾部署(哨兵sentinel) Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 l  Redis安装 l  整体架构 l  Redis主 ...

  9. redis主从集群搭建及容灾部署(哨兵sentinel)

    Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 ...

  10. 删库到跑路?还得看这篇Redis数据库持久化与企业容灾备份恢复实战指南

    本章目录 0x00 数据持久化 1.RDB 方式 2.AOF 方式 如何抉择 RDB OR AOF? 0x01 备份容灾 一.备份 1.手动备份redis数据库 2.迁移Redis指定db-数据库 3 ...

随机推荐

  1. CSP 2022 游记

    赛前占坑. 由于不知是 \(Day ?\) 故采用日期方式记录. 文笔所限,闲话较多,略显杂乱. 09.?? 接到通知,LN 初赛线上.面基环节无了/kk 09.17 翘 whk 和数学统练参加多校联 ...

  2. umich cv-5-2 神经网络训练2

    这节课中介绍了训练神经网络的第二部分,包括学习率曲线,超参数优化,模型集成,迁移学习 训练神经网络2 学习率曲线 超参数优化 模型集成 迁移学习 学习率曲线 在训练神经网络时,一个常见的思路就是刚开始 ...

  3. ST-Link v2 刷写 GNUK,年轻人的第一个 OpenPGP 智能卡!

    前言 看到了这篇文章 想搞 PGP 智能卡玩,但是 yubikey 死贵 还涉及到某些傻逼政治问题 于是就想找找有无开源实现什么的. 然后就看见了 smartcard 的制作教程,可惜能找到的便宜 j ...

  4. 五分钟k8s实战-Istio 网关

    在上一期 k8s-服务网格实战-配置 Mesh 中讲解了如何配置集群内的 Mesh 请求,Istio 同样也可以处理集群外部流量,也就是我们常见的网关. 其实和之前讲到的k8s入门到实战-使用Ingr ...

  5. 如何系统学习Python?

    学习 Python 可以通过以下系统性的步骤进行: 1. 设定学习目标 确定你学习 Python 的主要目的,是为了编写脚本.数据分析.Web 开发.机器学习还是其他应用?理解这个目标可以帮助你更有针 ...

  6. 2022.7.15 jiazhaopeng 讲课纪要

    前言 由于难度仍然过高,难度再次下调,这节课主要在水绿.这节课讲的是并查集,之所以是以绿题为主是因为上了绿之后的题有一大半都要结合别的东西,初中生不会,所以只能讲的简单一点. ORZ%%% jzp学长 ...

  7. Calendar日历类型常见方法(必看!!)

    Hi i,m JinXiang 前言 本篇文章主要介绍Calendar日历类型的几种常见方法以及部分理论知识 欢迎点赞  收藏 留言评论 私信必回哟 博主收将持续更新学习记录获,友友们有任何问题可以在 ...

  8. 【Javaweb】关于html转成jsp时出现乱码的问题解决

    原因是没有在代码头部添加,下面这段代码,添加之后就解决了 <%@ page language="java" contentType="text/html; char ...

  9. VideoPipe可视化视频结构化框架更新总结(2023-12-5)

    项目地址:https://github.com/sherlockchou86/video_pipe_c 往期文章:https://www.cnblogs.com/xiaozhi_5638/p/1696 ...

  10. 可视化学习:WebGL的基础使用

    引言 继续复习可视化的学习.WebGL和其他Web端的图形系统存在很大的不同,是OpenGL ES规范在浏览器的实现,它最大的不同就在于它更接近底层,可以由开发者直接操作GPU来实现绘图,性能很好,可 ...