CDN动态加速路径计算集群间数据同步优化方法

本文分享自天翼云开发者社区《CDN动态加速路径计算集群间数据同步优化方法》.作者:罗****斌

背景

实时路径计算服务作为动态加速平台核心组件,针对动态交互数据无法缓存于边缘节点,需要实时与客户源站进行交互,同时考虑客户接入点到客户源站之间复杂网络情况以及客户源站突发峰值的不确定性,实时路径计算服务能够避开网络拥塞、突发流量、源站服务压力高、服务设备宕机等诸多不利因素导致丢包、响应慢、服务不稳定等问题,叠加压缩传输、协议优化、链路复用等技术,承担起动态加速平台的智能选路功能

路径计算服务目前部署于全国三大区域机房内,每个区域内三台机器组成一个服务集群,三大区域之间采用主备备模式,全网CDN边缘主机组的基础探测数据都往一个主区域内的路径计算服务集群上报,故障情况下由域名调度实现主备区域角色的切换来解决服务的高可用性,不能利用备区域实现分布式计算及容错能力

存在的问题

随着CDN业务发展,边缘主机组增多,基础探测数据量增大,导致实时路径计算服务压力增大,此时只能横向扩展服务,压力还是存在于一个区域内的服务集群里,其它备区域服务集群则很空闲,无法垂直扩展分摊压力

基础探测数据不能按区域就近上报,全网CDN边缘主机组都往一个主区域内的服务集群上报,如果某局部网络故障,将导致此故障地区无法上报基础探测数据和获取最优路径结果;如果不幸主区域内的服务集群故障(主区域表示全网基础探测数据都往此汇聚的区域,基础探测数据是路径计算的基础数据),将导致主区域无法提供路径计算服务。对于以上故障,如果进行边缘节点域名调度切换到另一个备区域,由于各区域路径计算集群之间没有实现数据同步,导致切过来的一段时间路径计算不准确(缺少最新的各层级基础探测数据),影响客户加速

优化目的

实现路径计算服务在不同区域内的路径计算服务集群之间的数据同步功能,打破各区域数据孤岛问题而导致的边缘主机组基础探测数据无法在各区域来回切换上报,并可以按区域实现垂直扩展,达到去中心化,解决高可用的同时,也提高了计算速度

各区域具备数据同步功能后,每一个区域内都是全量边缘主机组的基础探测数据(包括路径的中间节点等),边缘主机组基础探测数据根据域名调度解析按区域就近上报(而不是只上报到一个主区域),在故障情况下,可以通过域名调度切换到一个可用的区域,零时延切换为用户继续提供准确的路径计算服务

优化方法

整体服务架构

集群间数据同步模块

1.路径计算服务接收到边缘主机组上报的基础探测数据和其它区域集群同步过来的基础探测数据

2.对收到的基础探测数据,判断是增量数据还是同步数据

3.1如果是增量数据,则进行路径计算并下发结果,基础探测数据存储到本区域集群

3.2增量数据同时也需要同步一份到其它区域,通过自定义消息格式控制数据的不同状态,并使用grpc+proto数据协议同步到其它区域集群

4.数据存储模块,存储增量数据与同步数据

同步数据接收模块

1.边缘节点基础探测数据开始上报

2.域名解析,查看上报区域是否发送改变

3.1如果上报区域发生改变,则上报到最新调整后的区域路径计算服务,并开始路径计算

3.2如果上报区域没有改变,则上报到原有区域路径计算服务

4.通过自定义消息格式控制数据的不同状态,并使用grpc+proto数据协议同步到其它区域集群

优点和效果

实现路径计算服务在不同区域内的路径计算服务集群之间的数据同步功能,打破各区域数据孤岛问题而导致的边缘主机组基础探测数据无法在各区域来回切换上报,并可以按区域实现垂直扩展,达到去中心化,解决高可用的同时,也提高了计算速度

各区域具备数据同步功能后,每一个区域内都是全量边缘主机组的基础探测数据(包括路径的中间节点等),边缘主机组基础探测数据根据域名调度解析按区域就近上报(而不是只上报到一个主区域),在故障情况下,可以通过域名调度切换到一个可用的区域,零时延切换为用户继续提供准确的路径计算服务

相关推荐
FungLeo2 天前
成为全栈·基础补充·缓存的层次与失效:浏览器、CDN、服务端、数据库
缓存·cdn·数据一致性·http缓存·成为全栈·flutter缓存
李纲明8 天前
WordPress 登录后跳回登录页或提示「Cookie 被阻止」:先核站点 URL 与 HTTPS 一致,再查安全插件与 CDN
https·登录·cdn·wordpress·cookie·devdiy·站点url
2601_967987379 天前
为静态资源添加路径前缀并支持发布到 CDN
开发文档·cdn·next.js·静态资源·页面路由
李纲明9 天前
WordPress 登录后跳回登录页或一直转圈:先核 Cookie、站点 URL 与 HTTPS,再查 CDN 与安全插件
登录·cdn·wordpress·cookie·devdiy·安全插件
李纲明13 天前
WordPress 前台改完还是旧页:浏览器、CDN、页面缓存、对象缓存怎么分层清
缓存·cdn·wordpress·devdiy
Vitaliy Kostrov(柯维远)13 天前
Multi-CDN 决策闭环:QoE、成本、安全与内容正确性如何进入同一个策略引擎?
安全·网络安全·云计算·音视频·负载均衡·cdn
李纲明16 天前
WordPress 挂上 Cloudflare 后询盘和后台异常:缓存规则、SSL 模式和真实 IP 怎么核
运维·缓存·https·cdn·wordpress·cloudflare
李纲明17 天前
WordPress 媒体库上传图片报「HTTP 错误」:php.ini、临时目录、安全插件和 CDN 怎么逐层查
运维·php·上传·cdn·wordpress·媒体库
Vitaliy Kostrov(柯维远)21 天前
客户端如何检查直播流:从流内标记到停止播放
android·运维·服务器·驱动开发·网络安全·系统架构·cdn
Vitaliy Kostrov(柯维远)1 个月前
谁来承担额外工作?CDN 参与者如何协商资源
nginx·缓存·系统架构·开源·cdn