1 引言
突然想了解常見開源的CDN軟件,于是Google了一下
2 了解結果
Google搜索結果來看,常見的軟件有squid,vanish,apache traffic server(ATS),nginx等,從目前使用的趨勢來看Apache Traffic Server占主流,也是未來的趨勢。
有一些文章提到國內(nèi)互聯(lián)網(wǎng)公司和CDN廠商目前使用的方案。
- 網(wǎng)宿,目前主要是ATS,按照網(wǎng)宿的規(guī)模應該是有能力進行二次開發(fā)。
- 藍汛,早期是squid,當其余廠商擁抱ATS時,由于技術包袱未及時投入ATS,但目前也在使用ATS
- 小米,京東等主要使用ATS
- 騰訊,搜到一片騰訊員工的博客,里面提到正在使用ATS,因此猜測騰訊也有可能使用ATS,加上ATS是C++語言,符合騰訊C++技術棧
- 百度, nginx + 自研緩存
- 阿里,tengine + 自研swift,早起使用ATS,但由于某些原因放棄ATS使用自研,不過自研可能是C開發(fā),應該是參考哪款開源軟件,比如文件系統(tǒng)借鑒的是squid的文件系統(tǒng),網(wǎng)上有阿里云CDN老大
shudu的PPT,由于未開源,預計是代碼重合度比較高。 - 又拍云,之前使用ATS,最新的消息是自研BearCache,應該不是全量部署,從文章來看猜測是優(yōu)化了網(wǎng)絡框架和熱重啟架構,應該也是參考ATS等。
- 新浪, nginx + ncache,需要第三方模塊并且插件化開發(fā),性能損失比較大
- 美麗說, Jaguar,GO語言開發(fā),前期使用ATS,應該是ATS的go語言簡化版。
3 總結
ATS是主流,但是ATS是C++語言開發(fā),二次開發(fā)技術難度高,所以一些廠商轉向自研,這篇文章也有助于即將從事CDN緩存開發(fā)的學習方向,就是好好研究ATS的源碼。