CDN故障处理初见
固定问题1:一个客户如何接入使用金山云的CDN加速服务?
CDN业务加速逻辑是通过DNS服务器把需要加速的域名进行CNAME,然后打上ks-com.的后缀,通过该标识可以通过我们的DNS-GSLB调度到边缘结点的cache服务器上,给予访问者提供资源。
所以如果我们想为某个客户进行加速服务的话,需要把客户需要加速的域名通过DNS改成ks-com.后缀的域名,然后网民就会解析到我们的cache节点上了。当然,第一次访问资源时cache上并没有需要的数据,所以cache会向上层节点拉数据,如果上层数据也没有的话,就需要回客户的源站/KS3回源请求数据。所以,如果想让网民可以更快体验到业务加速的快感,我们需要和客户约定,当有重大业务更新时,或者大数据量的业务发布时,需要提前的预加载数据,这样做可以避免众多CDN厂家回源对源站服务器产生较大压力,也可以缩短网民等待时间。
扩展问题1:如何校验cache中的数据不是最新的?
Cache中的数据存储时间是由客户设置的,当数据缓存到期后再次有请求时需要回上层回源站去拉数据,但是如果客户修改某个页面展示,但是缓存还没有到期时就需要手动数据下发,金山云使用的relay作为数据下发和预热。但是我这里想问的是我们如何可以通过自检来判断目前缓存的数据是否是当前客户展示的界面。
- 定期向客户源站存储服务器比对数据更新时间,如果数据有变更那么相应的更新时间也会不同,可以询问客户是否有数据变动,再进一步确认是否需要手动下发数据。
- 定期比对数据大小,原理同上。
客户接入加速服务不仅仅只是简单的“内容分发”,更多的是更快的发现和解决业务传输问题。