Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >简述异地多活方案以及腾讯云实践

简述异地多活方案以及腾讯云实践

原创
作者头像
CPT-leobhao
发布于 2022-08-29 06:58:54
发布于 2022-08-29 06:58:54
3.4K0
举报

背景前言

为了保障系统可用性, 我们通常会为了应对故障将组件或数据做冗余。常见的类型包括: 变更故障、硬件故障、断电断网、自然灾害, 发生的频率一次降低。

部分系统对可用性要求极高, 为了应对上述即使可能性非常低的故障, 我们需要从容灾层面去考虑这些情况。

本文从常见的容灾方案和容灾架构入手介绍, 结合腾讯云多可用区容灾方案进行示例讲解。

系统与数据容灾架构

衡量容灾能力

评价容灾能力主要是RPO和RTO两个指标。

  • RPO : 应发生故障时能忍受数据丢失的最大程度。系统越重要,要求 RPO 越小。 - 如果做数据备份,RPO越小意味着数据的备份频率更高,比如一般的系统可能一天备份一次,非常重要的系统可能一小时备份一次; - 如果做数据同步,RPO越小意味着要求数据同步链路的可靠性更高或延迟更低,对整个生产环境和网络的压力越大,需要的成本也更高。
  • RTO: 应用从出现故障到故障恢复能接受的最大时间。系统越重要,要求 RTO 越小

国家标准化管理委员会发布的容灾恢复RTO/RPO各等级对应关系如下:

灾难恢复能力登记

RTO

RPO

1

2天以上

1至7天

2

24小时以上

1至7天

3

12小时以上

数小时至1天

4

数小时至2天

数小时至1天

5

数分钟至两天

0至30分钟

6

数分钟

0

我们可以看到最严格的6级标准 RPO 为0, 意味系统不允许丢失数据(很多大型项目也都有着这个要求)

容灾分层
image.png
image.png

相对接入层、应用层容灾而言,数据层的容灾相对比较复杂,实现起来难度大一些。 下面我们主要阐述的也是数据层的容灾。

主流容灾架构
同城灾备

同一个城市至少部署两个机房,仅主机房对外提供服务, 备机房平时不提供服务能力,主要作为主机房的备份,主备之间数据采用单向同步的形式。

undefined(https://iwiki.woa.com/tencent/api/attachments/s3/url?attachmentid=68288undefined(https://km.woa.com/gkm/api/img/cos-file-url?url=https%3A%2F%2Fkm-pro-1258638997.cos.ap-guangzhou.myqcloud.com%2Ffiles%2Fphotos%2Fpictures%2F202208%2F1661740963-7135-630c27a3ae350-387876.png&is_redirect=1

优点: 部署简单,将同一套架构完全复制到另外机房即可,数据做单向同步,对业务的改造极少。

缺点:数据中心存在资源浪费的情况;关键时刻不敢切流,容易出现版本、参数、操作系统不一致等情况

同城双活

两个机房同时对外提供服务。为了数据的一致性,所有写操作都会放在主数据中心,因此两个数据中心的距离要求小于50km,RT小于2ms~6ms。如果请求落在备数据中心,则涉及到跨机房写操作(备机房应用写主数据中心)。如果跨机房的 RT 非常大,数据请求在主、备数据中心的性能差异也会非常大,无法提供很好的用户体验。架构上数据采用单向同步方式。

image.png
image.png

优点: 解决了备数据中心资源浪费的问题,并且因为日常保持提供服务状态,出现故障时可以随时切换,切换前只需要做数据中心的主备切换, RTO为分钟级。

缺点: 灾备局限在同城区域内,距离受限, 城市级灾难容易不可用。 对于延时敏感的系统跨机房写会给用户带来不好的体验

伪异地双活(应用层双活)

这种架构与同城双活有很多相似之处,唯一的区别在于备数据中心的读写进行了分离,读操作直接读备数据中心,而写操作为了保证数据一致性,将打到主数据中心的数据库上。要求两个数据中心距离小于100km,RT小于6ms。如果两个机房的距离过远,请求在两个机房之间的性能表现差异会很大。此架构比较适合读多写少的系统。

image.png
image.png

优点: 具备了一定程度的地域级别容灾能力,虽然架构要求距离小于100km,但是对于大部分地级城市而言,100km已经能够覆盖两个地级城市,RTO 只需分钟级别。

缺点: 业务系统需要能够接受一定的跨机房网络延;业务需要进行一定程度的改造, 将操作分位读操作和写操作两类;容灾距离依然受到非常大的限制(主要受限于跨机房写)

异地双(多)活

异地双活可以接受两个机房之间的距离大于1000km,RT 超过 10ms。为了解决此前两个机房中的性能差异,我们使用了单元化的解决方案。单元化指请求落到某单元后,所有请求操作都在单元内闭环处理,避免涉及跨机房操作。因而不管请求打到哪个机房都能保证基本一致的处理效率,也能保证良好的用户体验。为了实现单元化,要求各个机房之间数据双向同步

image.png
image.png

优点: 容灾能力非常强,几乎不受限制, RTO为分钟级别。

缺点: 部署复杂,涉及到数据的双向同步(需要在同步过程中解决数据冲突的问题, 云厂商一般使用DTS工具进行同步),还会涉及到比如 Redis 缓存、 Rocket MQ 、有状态中间件等;业务改造成本非常高,涉及到单元化和接入层等维度。

云上容灾架构分析

案例一腾讯云上云基础架构

云上基础容灾架构如下(数据层采取同城双活):

image.png
image.png

主要产品:

  • CDN 加速
  • WAF应用防火墙+DDOS防护
  • CLB 负载均衡(多可用区)
  • 多可用区云主机
  • 数据库(多可用区主备+异地灾备)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
同城双活与异地多活架构分析
采用高可用系统架构支持重要系统,为关键业务提供7x24的不间断服务,已经成为众多企业保障业务稳定、持续运转的主要选择。服务多活是高可用架构重要实施手段,本文介绍了一些业界常用的多活手段例如同城双活、两地三中心、异地多活架构设计方案并详述了各种方案的优缺点。
2020labs小助手
2020/09/14
13.4K0
浅谈业务级灾备的架构模式
互联网常见的高可用手段。比如服务冗余部署、异步化设计、负载均衡、服务限流降级熔断、架构拆分、服务治理、分布式存储等等,今天主要是一起聊下,多机房部署的灾备架构模式,来确保服务的高可用。
得物技术
2023/07/06
1.4K0
浅谈业务级灾备的架构模式
详解:淘宝高可用异地多活架构
作者丨DongGuoChao 来源丨https://blog.dogchao.cn/?p=299 导读:异地多活,作为一种高可用部署架构,成为大中型互联网公司的选择。像大家熟知的大型互联网公司,如阿里
xcbeyond
2020/11/30
2.8K0
详解:淘宝高可用异地多活架构
做容灾,双活、多活、同城、异地、多云,到底应该怎么选?
去年写过一篇《做容灾,冷备是不是个好方案?》,当时提出来,冷备或者主备,其实并不是一个理想的方案,而且绝大多数情况下,只能是一个心理安慰,真正发生故障的情况下,这样的容灾模式根本起不到作用。
赵成
2019/03/18
3.2K0
服务器灾备解决方案–两地三中心(图文详解)[通俗易懂]
灾备: 是指容灾和备份。容灾是为了在遭遇灾害时能保证信息系统能正常运行,帮助企业实现业务7*24小时连续性的目标,备份是为了应对灾难来临时造成的数据丢失问题。容灾备份产品的最终目标是帮助企业应对人为误操作、软件错误、病毒入侵等“软”性灾害以及硬件故障、自然灾害等“硬”性灾害。
全栈程序员站长
2022/09/07
24.4K1
“两地三中心”和“双活”简介--容灾技术方案
当前市场上常见的容灾模式可分为同城容灾、异地容灾、双活 数据中心、两地 三中心几种。
kubernetes中文社区
2020/06/16
16.1K0
异地双活实践笔记
最近恰好在搞异地双活,以下是一个梳理: 基本概念 1、异地容灾。这仅仅是一个冷备的概念。也就是在平时正常的时候,另外一个机房只是当做备份。 2、异地双(多)活。而异地双(多)活,却是指有两个或者多个可以同时对外服务的节点,任意一个点挂了,也可以迅速切换到其他节点对外服务,节点之间的数据做到准实时同步。 分类 根据是否需要数据同步大体分为三类: 1、必须同步型。(比如数据库) 2、无须同步型。比如缓存,仅仅是当做缓存,就可以这样做(这个有待商榷,其实缓存也需要同步的,严格来说的话)。 3、只能单活(对全局原
ImportSource
2018/04/03
12.5K0
异地双活实践笔记
搞懂异地多活,看这篇就够了
在软件开发领域,「异地多活」是分布式系统架构设计的一座高峰,很多人经常听过它,但很少人理解其中的原理。
_Kaito
2021/10/20
2.9K0
聊聊高可用的“异地多活”架构设计
来源:https://blog.dogchao.cn/?p=299  前言 后台服务可以划分为两类,有状态和无状态。高可用对于无状态的应用来说是比较简单的,无状态的应用,只需要通过 F5 或者任何代理
程序猿DD
2022/10/11
1.9K0
聊聊高可用的“异地多活”架构设计
MySQL两地三中心方案初步设计
随着互联网业务快速发展,多IDC的业务支撑能力和要求也逐步提升,行业内的“两地三中心”方案较为流行。
jeanron100
2019/08/06
3.9K0
MySQL两地三中心方案初步设计
微众银行数据库架构编年史
微众银行在成立之初,IT基础建设就没有选择传统的IOE集中式架构路线,转而选择采用了基于单元化的分布式架构。在这种大的背景下,微众银行的数据库的架构演进,也是
marsz
2024/12/25
3570
微服务高可用容灾架构设计
相对于过去单体或 SOA 架构,建设微服务架构所依赖的组件发生了改变,因此分析与设计高可用容灾架构方案的思路也随之改变,本文对微服务架构落地过程中的几种常见容灾高可用方案展开分析。
腾讯云中间件团队
2023/09/09
1.5K0
微服务高可用容灾架构设计
容灾技术方案详解,有没你不知道的?
容灾指的是,在异地搭建一套或多套和主生产系统一样的IT系统,用于应对在系统因发生意外(自然灾害、人为灾害、设备系统故障等)造成业务影响的情况,达到尽量让生产业务损失最小的目的。
ICT系统集成阿祥
2025/01/02
3150
容灾技术方案详解,有没你不知道的?
容灾的架构分析和容灾选择策略
容灾半径是衡量容灾方案所能承受的灾难影响范围的指标。不同灾难的影响范围是不同的,而距离也会影响到容灾技术的选择。容灾中心的架构按照源备端之间的距离,可分为本地容灾、同城双活、两地三中心。
删库跑路886
2022/04/29
3.2K0
容灾系列(十二)——业务异地多活能力建设【方案篇】
异地多活相对于异地热备,最大不同点在于应用在不同地域都承载流量,从业务流量调度,数据同步以及业务性能等方面技术复杂度会大幅度的提升。同时业务异地多活有一个前提,就是业务支持单元化部署,这里对存量有历史技术债业务也存在非常大的挑战。因此本篇幅讨论异地多活前提是,业务已经具备单元化部署的能力。
开元
2022/12/09
2.5K0
容灾系列(十二)——业务异地多活能力建设【方案篇】
十年验证,腾讯数据库RTO<30s,RPO=0高可用方案首次全景揭秘
为帮助开发者更好地了解和学习分布式数据库技术,2020年3月,腾讯云数据库、云加社区联合腾讯TEG数据库工作组特推出为期3个月的国产数据库专题线上技术沙龙《你想了解的国产数据库秘密,都在这!》,邀请数十位鹅厂资深数据库专家每周二和周四晚上在线深入解读TDSQL、CynosDB/CDB、TBase三款鹅厂自研数据库的核心架构、技术实现原理和最佳实践等。三月为TDSQL专题月,本文将带来直播回顾第二篇《破解分布式数据库的高可用难题:TDSQL高可用方案实现》。
分布式数据库TDSQL
2020/03/25
2.3K0
十年验证,腾讯数据库RTO<30s,RPO=0高可用方案首次全景揭秘
混合云应用双活容灾最佳实践
越来越多的企业在数字化转型和上云进程中选择混合云的形态(云+自建 IDC 或云+其他厂商云)来进行容灾建设,一方面不会过度依赖单一云厂商,另一方面还能充分利用已有的线下 IDC 资源。
IT运维技术圈
2022/10/24
3.5K0
腾讯专有云高可用设计内幕揭秘
导语 近几年,大型公有云故障引发的生产业务事故案例时有发生。由于很多开发者默认大型公有云的服务是一直可用的,在开发时没有针对公有云服务进行容错设计,在公有云故障时,就出现了业务的异常。可见,由于大型公有云实际上已经成为了全社会共同拥有的IT基础设施,其业务的高可用也已经成为了企业社会责任的一部分。腾讯云是如何通过完备的高可用设计,来保证云服务的业务连续性和数据持久性,从而承担大厂应有的社会责任的呢? 这篇来自腾讯专有云的架构师方天戟的万字长文为您揭开腾讯专有云高可用设计的内幕。 一. IT 业务高可用的
腾讯专有云
2023/01/01
7.7K0
腾讯专有云高可用设计内幕揭秘
腾讯云“两地三中心”,中小企业都用得起的多保险灾备方案
在云时代,大部分中小型企业都奔跑在云上或是服务器托管公司。任何规模的数据中心服务中断都会让你的企业踩雷。据统计,80%的数据中心服务中断都是由服务器硬件造成的。
删库跑路886
2022/11/23
1K0
腾讯云“两地三中心”,中小企业都用得起的多保险灾备方案
破解分布式数据库的高可用难题:TDSQL高可用方案实现
腾讯云数据库国产数据库专题线上技术沙龙正在火热进行中,3月12日张文的分享已经结束,没来得及参与的小伙伴不用担心,以下就是直播的视频和文字回顾。
腾讯云数据库 TencentDB
2020/03/25
4K0
推荐阅读
相关推荐
同城双活与异地多活架构分析
更多 >
LV.0
这个人很懒,什么都没有留下~
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档