大家是如何进行CDN资源自动刷新??
我们有个业务的静态资源变更非常频繁,于是便用了inotify去监控文件变更来触发自动刷新的接口。随便业务量越来越大,发现inotify非常已经应付不过来这么大量的文件了,经常会有资源源站更新了,没有自动刷新CDN。
大家在这一方面都是用的什么方法来解决呢,可以一起分享讨论一下!!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这个可以考虑两端来处理,一端在CDN,使用CDN服务方提供的api来刷新,你现在使用的就是这种情况。还有一端,就是在使用端处理,当然也就是编码这一侧。通常的处理方式也是监测文件变化,通过md5方式重命名文件,并替换引用。
第一种方式,很显然主动权并不在自己这里,如果CDN服务要处理大量这种刷新(这个刷新可能不仅仅只有你的,还有其他用户的,这种操作通常会排队处理),很有可能就会出现没有刷新的情况(不能排除CDN服务方出错啊之类的情况)。
第二种方式,主动权在自己手里。但是这种真操作起来会有一些难度,如果涉及到的资源不仅仅是静态文件中使用,可能是服务器端提供的地址之类的话。总之,还是要根据自己的业务来。
因为第一种你们已经实现了,可以考虑二者结合。
其实,你还有一个点,就是需要大量文件操作的时候,很显然不论是哪种方式都避免不了。
你们有没有思考过,为啥会有大量文件需要更新呢?因为CDN想要的一个就是它的缓存,这种大量文件(频繁)更新,是不是自己业务上还需要改善的地方呢?
要知道CDN如果数据量大了之后,收费还是不便宜的,其实我也发现很多公司,CDN上放了太多垃圾东西。
首先,我觉得LZ应该思考下为什么会变更得这么频繁? 比如,如果只是在调试的话,为什么不能自己搭个测试环境呢?再如是需求变更比较多,那就应该考虑定期上线..
其次,inotify确实不太好用,偶是通过push到git仓库的时候通过git钩子触发jenkins自动构建来刷新的,这样一般都不会有问题。