前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >容灾系列(十二)——业务异地多活能力建设【方案篇】

容灾系列(十二)——业务异地多活能力建设【方案篇】

原创
作者头像
开元
修改于 2022-12-09 10:38:33
修改于 2022-12-09 10:38:33
2.4K0
举报
文章被收录于专栏:开元说说开元说说

异地多活相对于异地热备,最大不同点在于应用在不同地域都承载流量,从业务流量调度,数据同步以及业务性能等方面技术复杂度会大幅度的提升。同时业务异地多活有一个前提,就是业务支持单元化部署,这里对存量有历史技术债业务也存在非常大的挑战。因此本篇幅讨论异地多活前提是,业务已经具备单元化部署的能力。

对于业务异地多活,基于成本以及业务复杂性实现方案有很多,当前主要介绍以下三种方案。

方案一:业务单元化部署

业务多地域单元化部署,入口流量借助于DNS解析线路来调度。当发生极端情况下,对应地域的业务恢复依赖于备份来恢复,RTO时间依赖于备份方案。该方案整体复杂度偏低,资源成本低,不涉及数据同步以及一致性,极端情况下,只能保障部分业务实时提供服务。具体技术架构如下:

多地域set化部署
多地域set化部署

在本方案中,不涉及备份技术方案,详情请参考之前容灾系列的备份方案。方案要点说明如下:

1)业务调度:目前通过DNS统一调度,调度路线设置通过地区或者运营商为区分。

2)业务部署:业务多地域单元化部署,同一地域业务同城双活部署。接入层CLB具备跨AZ主备能力;应用层采用多可用区部署建议采用容器运行时;数据层采用一端写就近读的跨AZ高可用实例。

3)容灾成本:业务备份的资源成本,具体可参考之前容灾文章系列。

4)业务恢复:可用区粒度的极端故障,基于云平台同城双活架构可实现RTO秒级切换恢复业务。对于地域粒度极端故障,如果广州地域整体异常,通过异地备份方式来恢复业务;北京地域的业务不受影响,正常访问。

方案二:业务单元化部署+数据单向同步

业务多地域单元化部署,中心地域具有全局数据,通过数据单向同步实现,如果分中心的地域出现极端故障,可以通过快速扩容和切换DNS线路的方式恢复业务,提升RTO指标;如果中心地域出现故障,通过备份方式来进行恢复。详细技术架构图如下:

业务set化部署+数据单向同步
业务set化部署+数据单向同步

在本方案中,不涉及备份技术和AS弹性扩容的技术细节,详情请参考之前容灾系列的备份方案。方案要点说明如下:

1)业务调度:同方案一保持一致。

2)业务部署:相对于方案一,新增了数据单向同步,北京地域为中心地域,具有全部业务数据;而广州地域为分中心,只有广州业务数据。

3)资源成本:相对于方案一,新增数据单向同步流量成本,由于北京地域数据库为全局业务数据库,规格实例成本相对于方案一会升级增加成本。

4)业务恢复:可用区粒度极端故障,和方案一保持一致;地域粒度极端故障,如果是主中心的故障和方案一一致,通过备份方式进行恢复,例如北京地域出现极端情况;如果是分中心故障,例如广州地域不可用,通过DNS修改解析线路到北京,RTO秒级别完成业务切换恢复。

方案三:业务单元化部署+数据双向同步

业务多地域单元化部署,不同地域数据库进行双向同步,对于地域粒度极端故障,实现业务秒级切换,提升RTO性能指标。详细技术架构如下:

set化部署,数据双向同步
set化部署,数据双向同步

在本方案中,不涉及备份技术和AS弹性扩容的技术细节,详情请参考之前容灾系列的备份方案。方案要点说明如下:

1)业务调度:于方案二保持一致

1)业务部署:相对于方案二,增加了数据双向同步,各个地域中心均具有全局数据能力,提升容灾的RTO指标,同时不同业务数据要有唯一主键来保证数据一致性

目前腾讯云平台已经支持双向同步,参考https://cloud.tencent.com/document/product/571/60956

2)资源成本:相对于方案二,由于地域不同数据库相互备份,减少备份资源成本,同时会增加地域间的数据同步带宽;数据库存储规格相对于方案二会增加成本。

3)业务恢复:相对于方案二,可用区粒度极端故障恢复保持一致,对于地域粒度极端故障,通过DNS切换解析线路进行恢复,提升RTO。

方案小结:方案横向对比

1)方案容灾能力对比(业务支持秒级切换,业务恢复为分钟级别)

单元化多地域部署

地域间单向数据同步

地域间双向数据同步

单可用区入口不可用

支持

支持

支持

单可用区资源不可用

支持

支持

支持

单可用区网络不可用

支持

支持

支持

同地域入口不可用

支持

支持

支持

同地域资源不可用

不支持

部分支持

支持

同地域网络不可用

不支持

部分支持

支持

2)方案综合能力对比

单元化多地域部署

地域间单向数据同步

地域间双向数据同步

运维能力

非常高

复杂度

较高

非常高

资源成本

跨地域专线带宽费用较高

跨地域专线带宽费用非常高

覆盖场景

可以满足大多数高可用场景

可以满足绝大多数高可用场景

相对于单向数据同步,提升空间有限

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】2023年06月 攻防世界-Web(Triangle)
Unicorn是一个基于Ruby语言编写的Web服务器,它采用了多进程和多线程的方式来提高并发性能。
愚公搬代码
2025/05/28
630
【愚公系列】2023年06月 攻防世界-Web(Triangle)
nProtect APPGuard安卓反外挂分析
1.最近在学习手游保护方面的技术,本文是学习过程中分析某反外挂的一点记录,高手莫要见笑,有不对的地方还请指教,首先简单通过资源目录中文件名做基本了解,
我是小三
2018/08/08
4.6K0
nProtect APPGuard安卓反外挂分析
一张A4纸攻破某AI人脸识别产品
人脸识别,是基于人的脸部特征信息进行身份识别的一种生物识别技术。用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部识别的一系列相关技术,通常也叫做人像识别、面部识别。
我是小三
2021/08/05
1.7K0
梆梆APP加固产品方案浅析
Android系统是基于Linux开发己具有其开放性、自由性的一种操作系统,现主要应用于移动设备,如手机、平板电脑和车载系统等。从2007年Google推出第一代Android操作系统至今已有10多年的时间,移动行业的市场份额与规模也在急速增长,现在几乎每人都在用或曾用过接触过Android智能手机。
我是小三
2021/03/18
4.5K0
梆梆APP加固产品方案浅析
xx外买APP设备指纹风控分析
电商行业的各个业务场景面临不同的风险种类:客户端漏洞利用、协议逆向、注册小号、商品信息被抓取、推广渠道作弊、营销活动被薅羊毛、商品秒杀等。 大多的防御方案是通过端上安全、链路安全、接口和数据传输安全保护,再借助设备安全核验技术、人机识别及时发现各种模拟行为和异操作风险、同时集合风控策略实现多节点防护。
我是小三
2021/10/13
7.5K1
某移动端防作弊产品技术原理浅析与个人方案构想
工具环境: android4.4.4、IDA Pro 7.0、jeb3、sklearn机器学习库
我是小三
2019/05/19
4K2
关于 Block 中捕获 self 的分析
作者:kodyzhou 问题 最近遇到一个已经使用了weak-strong dance的block依旧强引用了self的情况,好在block没被VC持有只是延迟释放,但这里的关键是用了weak_sel
QQ空间开发团队
2017/08/07
1.6K0
关于 Block 中捕获 self 的分析
360 so动态脱壳
目前so加壳有很多家,我己知的有 爱加密,梆梆,360, 娜迦等 各有所长。今天把学习360的脱壳笔记记录下来与小菜共同学习,没有其它目的,大神请绕道!
我是小三
2018/08/08
1.4K0
360 so动态脱壳
APK加固之类抽取分析与修复
隐藏dex文件:通过对目标DEX文件进行整体加密或压缩方式把整个dex转换为另外一个文件存放在assets文件夹中或者其它地方,然后利用类加载器技术进行内存解密并加载运行。
我是小三
2018/08/08
2.2K1
APK加固之类抽取分析与修复
Cortex-M3启动深度解析
Cortex-Mx启动,备忘,以免将来忘记。 中断向量表不用说,从重置中断开始吧 LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 这里一共就执行了两个函数,SystemInit和__main。 我们一般在SystemInit里面配置系统时钟,这里跳过。 __main是我们今天的重点。 __main: 0x080000C0 4804 LDR r0,[pc,#16] ;
大石头
2018/01/09
1K0
第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)
目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的  (3) 分析stext函数如何启动内核:  (3.1
诺谦
2018/01/03
1K0
第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)
UCOSII系统移植详解「建议收藏」
1,处理器的C编译器能产生可重入型的代码,如果不行的话,那么就不能在任务之间随意的切换,因为当你切换到别的任务的时候,该任务在这个函数的数据就会被破坏。
全栈程序员站长
2022/08/19
2.4K0
某地理位置模拟APP从壳流程分析到破解
在我们拿到一个APP准备破解时一般得安装运行,程序运行后须要注册用户,随便注册一个用户登录,以下是APP须要购买vip才能使用的大概情况。
我是小三
2018/08/08
1.4K0
某地理位置模拟APP从壳流程分析到破解
zergRush (CVE-2011-3874) 提权漏洞分析
最近(终于)转Android了,2011年著名的zergrush是接触的第一个ROOT漏洞。虽然它已经过气了,只影响Android 2.2 – 2.3.6,但觉得还是有必要记录一下分析所得。
全栈程序员站长
2022/09/06
6000
某手游智能反外挂产品原理浅析
作者: 我是小三 博客: http://www.cnblogs.com/2014asm/ 由于时间和水平有限,本文会存在诸多不足,希望得到您的及时反馈与指正,多谢!
我是小三
2019/08/09
2.1K0
某手游智能反外挂产品原理浅析
C程序反编译成汇编代码命令整理
最近使用三方的一个工程, 但是有些逻辑封装成了lib库,关键地方看不到是不是很难受, 所以顺带找了找反编译的方法,反编译出来的代码是汇编代码,比方ANTHOR_MEASURE的代码,但多少能猜的八九不离十吧,知道调用了哪些方法,参数是什么,也就够了,也不算是逆向工程,做了简单记录;
呱牛笔记
2023/05/02
1K0
C程序反编译成汇编代码命令整理
OpenHarmony 内核源码分析 (内核启动篇) | 从汇编到 main ()
这应该是系列篇最难写的一篇,全是汇编代码,需大量的底层知识,涉及协处理器,内核镜像重定位,创建内核映射表,初始化 CPU 模式栈,热启动,到最后熟悉的 main() 。
小帅聊鸿蒙
2025/04/07
1790
OpenHarmony 内核源码分析 (内核启动篇) | 从汇编到 main ()
OpenHarmony 内核源码分析(汇编汇总篇)
鸿蒙内核源码分析系列篇至少已经有五篇涉及到了汇编,请自行翻看,但还是远远不够,要写十五篇,彻底摸透,现在才刚刚开始,本篇先整理鸿蒙内核所有汇编文件和大概说明文件的作用,后续一块一块来剥,不把这些汇编剥个精光不罢休.
小帅聊鸿蒙
2025/03/19
1100
聊聊程序分散加载启动的奥秘
素材来源:https://blog.csdn.net/zhengyangliu123/article/details/78788815
李肖遥
2022/12/22
5590
聊聊程序分散加载启动的奥秘
MDK C++中对内联的极度优化
先来看看我们SmartIRQ的具体实现 // 智能IRQ,初始化时备份,销毁时还原 class SmartIRQ { public: force_inline SmartIRQ(bool enable = false) { _state = __get_PRIMASK(); if(enable) __enable_irq(); else __disable_irq(); } fo
大石头
2018/01/09
1K0
推荐阅读
相关推荐
【愚公系列】2023年06月 攻防世界-Web(Triangle)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档