1 引言
突然想了解常见开源的CDN软件,于是Google了一下
2 了解结果
Google搜索结果来看,常见的软件有squid
,vanish
,apache traffic server(ATS),nginx
等,从目前使用的趋势来看Apache Traffic Server
占主流,也是未来的趋势。
有一些文章提到国内互联网公司和CDN厂商目前使用的方案。
- 网宿,目前主要是ATS,按照网宿的规模应该是有能力进行二次开发。
- 蓝汛,早期是squid,当其余厂商拥抱ATS时,由于技术包袱未及时投入ATS,但目前也在使用ATS
- 小米,京东等主要使用ATS
- 腾讯,搜到一片腾讯员工的博客,里面提到正在使用ATS,因此猜测腾讯也有可能使用ATS,加上ATS是C++语言,符合腾讯C++技术栈
- 百度, nginx + 自研缓存
- 阿里,tengine + 自研swift,早起使用ATS,但由于某些原因放弃ATS使用自研,不过自研可能是C开发,应该是参考哪款开源软件,比如文件系统借鉴的是squid的文件系统,网上有阿里云CDN老大
shudu
的PPT,由于未开源,预计是代码重合度比较高。 - 又拍云,之前使用ATS,最新的消息是自研BearCache,应该不是全量部署,从文章来看猜测是优化了网络框架和热重启架构,应该也是参考ATS等。
- 新浪, nginx + ncache,需要第三方模块并且插件化开发,性能损失比较大
- 美丽说, Jaguar,GO语言开发,前期使用ATS,应该是ATS的go语言简化版。
3 总结
ATS是主流,但是ATS是C++语言开发,二次开发技术难度高,所以一些厂商转向自研,这篇文章也有助于即将从事CDN缓存开发的学习方向,就是好好研究ATS的源码。
网友评论