阿里云CDN实现毫秒级全网刷新
发布时间:2019-07-02 09:35
通常在某网站使用了CDN节点来实现内容分发加速后,当源站内容更新的时候,CDN刷新系统会通过提交刷新请求将CDN节点上的指定缓存内容强制过期。当用户访问的时候,CDN节点将回源获取最新内容返回给用户,并在缓存节点更新资源。传统CDN刷新的生效时间通常需要数分钟,并且随着服务节点的数量和形态增多,生效时间会线性变长。
在这种情况下就会遇到这些问题:当媒体网站发表了一篇内容有错误的文章,因为刷新系统缓慢,无法第一时间修订或撤回;在电商大型促销活动期间,产品活动详情页的图片需要实时更新,因为不能及时刷新CDN缓存,最新的详情页无法第一时间更新到全网,可能会影响用户下单。诸如此类的以上问题可能会带来一定的信誉或业务损失。
毫无疑问,想要避免以上问题,CDN刷新系统需要在源站内容更新后同时刷新CDN节点的缓存,确保源站内容与CDN缓存内容尽量保持一致。
实际上,阿里云CDN每天为超过百万的域名加速,承接数十亿次的刷新,想要打破常规刷新速率壁垒,会面临以下几个技术挑战:
第一, 实时性,在如此大数据量的背景下,需要解决如何将消息快速传播至全网的问题
第二, 可靠性,在复杂的公网传输链路之下,需要有效应对网络拥塞,确保传输的低延时和稳定性
第三, 可扩展性,随着业务增长,CDN节点增多,要解决刷新时长不会线性增长的问题,在不进行中心扩容的情况下依然保持刷新速率,提供“无感”的刷新体验
针对以上几个技术难点,阿里云CDN技术团队进行大量协议优化与实践,最终达成突破性进展,实现了全网平均刷新生效时间低至毫秒级。也就是说在当客户源站内容发生更改,不到1秒时间内,全网用户已经可以访问到最新内容了。这套系统实现了真正的消息指数级广播,可以有效应对刷新系统缓慢带来的信息更新不及时等问题,极大地提升了客户内容的全网刷新速率,进而提升网民访问体验。同时,刷新系统采用log(n) base(a) 的收敛速度,可以做到数万级别的节点下刷新时间依旧保持在毫秒级,不线性增长,保障了服务节点飞速增长情况下的全网刷新。后续该能力将会面向阿里云CDN客户开放。
除此以外,阿里云CDN目前有全球2500+节点,120T带宽储备,依托CDN智能调度系统、精准可控的水位预测技术、全链路容灾保障等能力,经受住一次次双11晚会、春晚直播等大型互联网直播的考验,同时在去年夏天俄罗斯世界杯期间承担了全网70%的世界杯流量