《DNS稳定保障系列2--全局流量管理保障异地容灾》

简介: 背景 随着互联网的快速发展,为保证业务的持续高可用,同城多活、异地多活已成为各企业的不二之选。服务设置多中心,中心内部多地址负载,是多数企业采用的常规做法。这种情况下,如何对流量进行有效控制以达到最佳的用户访问效率变得尤为重要。

背景

随着互联网的快速发展,为保证业务的持续高可用,同城多活、异地多活已成为各企业的不二之选。服务设置多中心,中心内部多地址负载,是多数企业采用的常规做法。这种情况下,如何对流量进行有效控制以达到最佳的用户访问效率变得尤为重要。我们简单设想一下:
(1) 何以实现用户就近访问服务中心,减少网络耗时?
(2) 服务中心多个IP地址如何实现负载均摊或者权重轮询,保证整体负载的稳定性?
(3) 服务中心某IP地址故障后,如何快速发现并实现隔离?地址恢复后自动添加至解析列表,完全无需人为干预。
(4) 当某中心故障发生时,如何快速切流到其他中心,减少中断时间?
综合上述考虑,阿里云DNS基于DNS入口调度和分布式云监控,推出了全局流量管理(Global Traffic Manager,下文均简称为GTM),旨在帮助企业实现用户访问应用服务的就近接入、高并发负载均摊、应用服务的健康检查,并能够根据健康检查结果实现故障隔离或流量切换,方便企业灵活快速的构建同城多活和异地容灾服务。接下来我们将介绍如何通过GTM为异地容灾保驾护航。

原理

与传统DNS解析相比,GTM主要具备如下特点:
地址池:
传统DNS解析到单个地址,而GTM则引入地址池概念。如图1中的PoolA/B/C所示,一个地址池代表一组提供相同应用服务,即具备相同运营商或地区属性的IP地址或域名地址。通过地址池可对应用服务的IP地址进行统一管理。实现将终端用户访问解析到应用服务地址池,既可实现高负载情况下的流量均摊,又可实现自定义流量分配。同时当地址池整体不可用时,可以做备份切换。
健康检查:
依托于云监控强大的分布式监控功能,GTM新增了HealthCheck模块,如下图所示,从多个地区对地址池内的多个应用服务IP地址发起健康探测,目前已支持http/https、tcp、ping三种方式。当地址池中地址发生故障时HealthCheck模块会准确的检测到异常情况并与DNS交互,摘除故障地址。并当故障地址恢复时,自动恢复至解析返回列表。


图1: GTM原理图


访问策略:
访问策略旨在解决根据请求来源和地址池健康情况进行地址池切换的问题。既能做到地址池纬度智能解析,又可实现故障自动切换功能。当地址池整体出现故障时,GTM会根据用户自定义策略进行地址池分钟级切换,并当地址池恢复时切回。

##异地容灾
接下来我们将以异地双活为例介绍如何借助GTM实现快速容灾切换。如下图所示,某服务的用户主要分为海外用户和国内用户,后端服务采用一套部署方案。通过GTM对不同地区用户请求进行智能调度,将用户访请求流量路由至不同的接入服务点,即海外用户访问新加坡中心(Singapore),国内用户访问杭州中心(CN-Hangzhou)。当某站点发生故障灾难时,各接入站点自建互相备份,最终实现业务的高可用。


_2

图2: 异地容灾示意图

五步快速接入GTM,实现异地容灾:
(1)全局配置:
基础配置,主要配置负载均衡策略、全局TTL、报警通知组等相关信息。
(2)地址池配置:
新建地址池Singapore和CN-Hangzhou。每个地址池中均配置该区域下多个服务IP,以及最小可用地址数量。当地址池存活地址数小于该地址池数量时,则地址池视为不可用。此外,根据全局配置中负载均衡策略自动实现流量分配。
(3)开启健康检查
即对地址池中的IP地址配置健康检查,开启后可实现实时监测地址的可用性状态。根据地址的可用性进行故障自动隔离,并通知相应报警组。当地址恢复后,自动添加至解析列表。此外,当地址池整体出现问题时,触发默认地址池与备用地址池之间自动切换。能达到5分钟内,90%流量的切换速度。
(4)访问策略配置
根据用户的请求来源设置最终用户访问哪一个地址池。如图所示,海外用户希望访问Singapore地址池,则需设置相应访问策略,请求来源设置海外地区,默认地址池为Singapore,备用地址池设置CN-Hangzhou。则正常请求下,则海外用户访问Singapore中心,发生故障后会快速切换至CN-Hangzhou中心。
(5)CNAME接入配置
需要将用户访问的主域名CNAME至全局流量管理的实例域名,才能最终实现对应用服务进行容灾、智能接入。即将图中的www.cloud-example.com CNAME到我们提供的接入域名。

配置完成后,我们将根据健康配置实时探测地址池中地址,当地址发生报警时,则根据图3的流程进行判断,实现容灾切换,以图2中IP地址A报警为例。由此可见,当默认地址池(Singapore)地址池可用时,则解析列表摘除地址A,当默认地址池整体不可用时则切换备用地址池(CN-Hangzhou),切换过程自动完成,并缩小时间至分钟级。从而有效保证异地容灾的切换效率。


图3: 故障切换流程图

容灾预案

此外,全局流量管理新增的容灾预案功能可以帮助用户日常做容灾演练,或在应用服务出现故障时实现快速切换流量。容灾预案支持批量地址池故障模拟及回滚,帮用户验证切换策略是否符合预期。

相关文章
|
人工智能 语音技术 云计算
基于客户真实使用场景的云剪辑Timeline问题解答与代码实操
本文为阿里云智能媒体服务IMS「云端智能剪辑」实践指南第6期,从客户真实实践场景出发,分享一些Timeline小技巧(AI_TTS、主轨道、素材对齐),助力客户降低开发时间与成本。
136190 86
基于客户真实使用场景的云剪辑Timeline问题解答与代码实操
|
存储 网络协议 安全
DNS科普系列: DNS防火墙(DNS Firewall)
DNS防火墙是一种网络安全解决方案,可以防止网络用户和系统链接到已知的恶意网络位置,可以有效的预防威胁发生, 阻止访问受感染的站点,进而防止进一步的威胁。能够主动检测到已被感染的系统,并通过安全报告的形式将此类威胁通知用户。还能够保护用户的网络环境,提高网络安全性。
DNS科普系列: DNS防火墙(DNS Firewall)
|
Java 中间件 Serverless
CSE:阿里在线应用如何演进成Serverless架构
**Cloud Service Engine**,简称**CSE**,是中间件部门研发的面向通用Serverless计算的中间件产品,目标是具备AWS Lambda的各种优势,同时可以解决AWS Lambda的关键技术缺陷。 AWS Lambda如果用于核心业务,可能会有以下缺陷:(仅代表个人观点) * 要求用户以Function为单位开发,全新的开发框架,云厂商强绑定。社区主
4431 0
|
8月前
|
消息中间件 NoSQL Java
拒绝频繁写库!SpringBoot 整合 BufferTrigger 实现高性能“流量聚合”
本文介绍如何用SpringBoot整合BufferTrigger实现高性能流量聚合,解决高并发下频繁写库的痛点。通过快手开源的BufferTrigger组件,可将大量数据库操作合并为批量执行,显著提升I/O效率,适用于计数、埋点、状态同步等场景,兼具高性能与低延迟。
660 145
|
C++ Python
vsCode修改字体为JetBrains Mono (PyCharm默认字体)
vsCode修改字体为JetBrains Mono (PyCharm默认字体)
4670 0
vsCode修改字体为JetBrains Mono (PyCharm默认字体)
|
机器学习/深度学习 人工智能 算法
【深度学习之美】神经网络不胜语, M-P模型似可寻(入门系列之三)
“那些在个人设备里,谦谦卑卑地为我们哼着歌曲的数字仆人,总有一天会成为我们的霸主!”在“忍无可忍,无需再忍”这句俗语背后,也隐藏中神经网络常用的“激活函数”和“卷积”的概念。知其道,用其妙,THIS IS HOW!
34938 0
【深度学习之美】神经网络不胜语, M-P模型似可寻(入门系列之三)
|
存储 机器学习/深度学习 算法
聚合签名、门限签名、Multisigs 和多签名
该文章深入探讨了数字签名在区块链技术中的应用,并比较了聚合签名、门限签名和多签名三种方案的异同,同时介绍了MuSig2和FROST这两种旨在提高区块链平台多签名或门限签名效率的提案。
988 3
聚合签名、门限签名、Multisigs 和多签名
|
Java
"揭秘Java IO三大模式:BIO、NIO、AIO背后的秘密!为何AIO成为高并发时代的宠儿,你的选择对了吗?"
【8月更文挑战第19天】在Java的IO编程中,BIO、NIO与AIO代表了三种不同的IO处理机制。BIO采用同步阻塞模型,每个连接需单独线程处理,适用于连接少且稳定的场景。NIO引入了非阻塞性质,利用Channel、Buffer与Selector实现多路复用,提升了效率与吞吐量。AIO则是真正的异步IO,在JDK 7中引入,通过回调或Future机制在IO操作完成后通知应用,适合高并发场景。选择合适的模型对构建高效网络应用至关重要。
584 2
|
存储 网络协议 物联网
网络中的“客户端”和“服务器
【8月更文挑战第24天】
2075 0
|
NoSQL MongoDB 数据库

相关产品

  • 云解析DNS