亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

解析Instagram網站的圖片存儲架構

2024-04-25 20:22:51
字體:
來源:轉載
供稿:網友

被Facebook以10億美金收購的著名手機照片分享應用Instagram最近吸引了無數人的眼球,Instagram聯合創始人Mike Krieger說他們用了8周時間打造了最初的Instagram,但現在的系統肯定已經今非昔比。Instagram技術團隊曾發表過一篇文章,介紹了Instagram背后的技術,日前Mike Krieger在名為Scaling Instagram的演講里,又介紹了更多細節,讓人們能了解到5名技術人員是如何支撐起整個系統的。

一張照片上傳的過程是這樣的:

1.采用同步的方式寫入媒體數據庫
2.如果照片上有地理位置標簽,則以異步的方式將照片提交給Solr進行索引
3.將照片的ID加入每個關注者的列表里,該列表保存在Redis之中
4.在顯示Feed時,選取一小部分照片ID,在Memcached里進行查詢
5.在設計系統時,Instagram的設計哲學是簡單、為最小化運維負擔進行優化并監控一切內容;其核心原則是保持簡單,不要重復發明輪子,盡可能使用經過驗證、穩定可靠的技術。

由于只有5名技術人員(其中僅2.5名后端工程師),精力有限,選擇Amazon的云服務是個不錯的選擇。目前他們使用了超過100個EC2實例用于提供各種服務,運行的操作系統是Ubuntu 11.04,之前的一些版本在高流量時表現不夠穩定。在負載均衡方面,他們使用Amazon的Elastic Load Balancer實現負載均衡,后端運行了3個Nginx實例,SSL只到ELB上為止,降低了Nginx上的CPU負載。DNS和CDN分別由Amazon的Route 53和CloudFront提供,所有的照片都存放在S3上,目前已經有幾TB的規模了。

用于處理請求的應用服務器運行于Amazon High-CPU Extra-Large Instance之上,由于他們的請求更多是CPU密集型的,因此這能更好地平衡CPU與內存。采用的開發框架是Django,WSGI服務器是Gunicorn,通過Fabric在所有機器上進行并行部署,一次部署僅需幾秒鐘。

用戶信息、圖片元數據、標簽等大部分數據存儲在 PostgreSQL 中。
實踐中發現 Amazon 的網絡磁盤系統單位時間內尋道能力不行,所以有必要將數據盡量放到內存中。創建了軟 RAID 以提升 IO 能力,使用的 Mdadm 工具進行 RAID 管理。
管理內存中的數據,vmtouch 這個小工具值得推薦。
PostgreSQL 設置為 Master-Replica 方式,流復制模式。利用 EBS 的快照進行數據庫備份。使用 XFS 文件系統,以便和快照服務充分配合。 使用 repmgr 這個小工具做 PostgreSQL 復制管理器器。
連接池管理,用了 Pgbouncer。Christophe Pettus 的文章包含了不少 PostgreSQL 數據庫的信息。

應用程序在連接數據庫時,由Pgbouncer建立連接池。目前,Instagram的數據按照用戶ID進行分片,某些分片可能會超出物理節點的容量上限,為此他們將數據分成了很多個邏輯分片,映射到少數幾個物理節點之上;當一個節點被填滿之后,可以將某些邏輯分片移到別的節點上,以緩解該節點的壓力。隨著數據量的增長,以后他們也會進行垂直分區,Django DB Router能讓一切輕松不少。


Instagram也大量使用Redis來存放復雜的對象(對象的大小做了一定的限制),用于主Feed、活動Feed、會話系統及其他相關系統。因為要將Redis的所有數據都放在內存里,此處同樣也用了High-Memory Quadruple Extra-Large Instance,并對數據做了分片。當Redis實例的請求達到4萬/秒后,它漸漸成為了瓶頸,于是Redis也做了主從復制,副本的數據會經常導出到磁盤上,通過EBS快照進行備份。

除了Redis,他們還使用Memcached來做緩存,目前運行了6個實例,應用服務器通過pylibmc和libmemcached進行連接。雖然Amazon提供了Elastic Cache服務,但該服務的價格并不便宜,相比之下,還是運行自己的Memcached實例比較劃算。異步任務隊列使用的是Gearman,目前有大約200個工作進程來處理各種任務,比如把照片分享到Twitter和Facebook,通知用戶有新照片等等。Pyapns已經處理了十億的推送通知,非常穩定,他們還自己開發了基于Node.js的node2dm,用于向Android設備發送推送通知。


監控方面,Instagram使用Munin以圖形化的方式呈現整個系統的運行狀況,還通過Python-Munin定制了一些插件,用來顯示業務數據;網絡守護進程Stated可以實時收集數據并做匯總;Dogslow會監控進程,一旦發現運行時間過長的進程,便會保存該進程的快照,以便后續分析,比如響應時間超過1.5秒的請求,通常都是卡在Memcached的set()和get_many()方法上。對于Python的錯誤,只要登上Sentry就能實時獲取錯誤信息。

HighScalability上還根據整理Instagram團隊軟件工程師Mike Krieger的演講整理了一些值得借鑒的經驗,比如:

1.找那些你熟悉的技術和工具,在簡單的使用場景里先做一些嘗試
2.不要使用兩個工具來處理同樣的任務
3.事先準備降級方案,以便在需要時降低負載
4.不要過度優化,或者希望能事先知道站點要擴展,對于一個初創的社交站點而言,沒什么擴展性問題是解決不了的
5.如果一個辦法不行,趕快換下一個

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲网站在线播放| 色天天综合狠狠色| 亚洲欧洲在线播放| 日本视频久久久| 久久久精品国产亚洲| 亚洲人成网站在线播| 久久免费精品日本久久中文字幕| 欧美孕妇孕交黑巨大网站| 久久精品成人欧美大片古装| 国产99久久精品一区二区 夜夜躁日日躁| 久久久久久久久久久av| 欧美性xxxx极品hd欧美风情| 国内精品国产三级国产在线专| 日韩成人av在线播放| 亚洲日本中文字幕免费在线不卡| 久久久精品在线观看| 色悠悠国产精品| 国产精品成人国产乱一区| 色噜噜国产精品视频一区二区| 2018国产精品视频| 欧美在线一级视频| 久久久久久网址| 91沈先生作品| 亚洲情综合五月天| 亚洲3p在线观看| 国产深夜精品福利| 中文字幕久热精品在线视频| 亚洲欧美精品一区| 懂色av中文一区二区三区天美| 欧美成人网在线| 国产69精品久久久久久| 欧美日本啪啪无遮挡网站| 国产成人高潮免费观看精品| 国产精品高精视频免费| 日韩欧美亚洲一二三区| 这里只有精品视频| 这里只有精品在线观看| 亚洲成年网站在线观看| 国产日韩av在线播放| 在线视频亚洲欧美| 欧美资源在线观看| 高清视频欧美一级| 日韩免费中文字幕| 热re91久久精品国99热蜜臀| 欧美高清不卡在线| 国产精品极品在线| 亚洲精品suv精品一区二区| 亚洲色图25p| 亚洲一区二区三区香蕉| 日韩电影视频免费| 欧美一级黄色网| 亚洲精品福利资源站| 欧美洲成人男女午夜视频| 精品亚洲夜色av98在线观看| 国产在线播放不卡| 国产在线精品播放| 91久久精品日日躁夜夜躁国产| 欧美激情高清视频| 成人高清视频观看www| 久久精品国产一区二区三区| 国产综合色香蕉精品| 国产精品久久久久免费a∨| 亚洲精品久久久久中文字幕二区| 最新日韩中文字幕| 日本成人黄色片| 亚洲va国产va天堂va久久| 亚洲精品有码在线| 久久香蕉精品香蕉| 欧美激情一区二区久久久| 国产精品专区第二| 国产成人精品999| 日韩小视频网址| 欧洲亚洲在线视频| 国产精品欧美久久久| 欧美激情第三页| 欧美裸体xxxx极品少妇软件| 亚洲一区二区三区毛片| 国产精品久久久| 亚洲夜晚福利在线观看| 亚洲另类激情图| 国产精品久久久久久久久久东京| 97国产在线观看| 欧美日韩国产中文精品字幕自在自线| 欧美激情久久久| 91夜夜未满十八勿入爽爽影院| 欧美福利视频在线| 午夜欧美不卡精品aaaaa| 97超碰色婷婷| 亚洲欧美成人精品| 中文字幕久精品免费视频| 亚洲欧美中文字幕| 在线看欧美日韩| 亚洲综合在线播放| 成人免费高清完整版在线观看| 久久免费成人精品视频| 亚洲成成品网站| 久久香蕉精品香蕉| 国产精品网红福利| 日韩人体视频一二区| 97国产精品视频人人做人人爱| 韩日欧美一区二区| 久久免费观看视频| 2019国产精品自在线拍国产不卡| 中文字幕日韩专区| 国产亚洲精品综合一区91| 亚洲综合色av| 日韩av电影中文字幕| 好吊成人免视频| 亚洲图中文字幕| 国产精品丝袜久久久久久高清| 精品国产区一区二区三区在线观看| 中文字幕亚洲无线码a| 精品久久久久久中文字幕大豆网| 亚洲综合视频1区| 亚洲老头同性xxxxx| 成人欧美一区二区三区黑人| 亚洲激情久久久| 亚洲欧美日韩精品久久奇米色影视| 97精品免费视频| 91爱视频在线| 日韩av免费一区| 亚洲美女精品成人在线视频| 欧美激情二区三区| 国产精品白丝jk喷水视频一区| 日本一区二区在线免费播放| 欧美成人激情视频免费观看| 亚洲社区在线观看| 揄拍成人国产精品视频| 亚洲精品电影在线观看| 亚洲国产成人久久综合| 国产精品电影网站| 国产精品白嫩初高中害羞小美女| 国产精品成人一区二区| 欧美精品少妇videofree| 亚洲色图17p| 日本精品一区二区三区在线播放视频| 日韩视频免费看| 国产精品综合网站| 欧美视频在线观看 亚洲欧| 久久亚洲精品一区| 国产免费一区二区三区在线观看| 亚洲国产精品成人一区二区| 91精品国产91久久久久久久久| 中文字幕日韩有码| 久久久久九九九九| 国产精品视频精品| 国产精品免费一区| 美女啪啪无遮挡免费久久网站| 91视频国产高清| 人人做人人澡人人爽欧美| 国产亚洲欧洲黄色| 亚洲一区二区三区成人在线视频精品| 欧美福利小视频| 黑丝美女久久久| 亚洲日本成人女熟在线观看| 久久这里有精品| 亚洲欧美国产另类| 欧美国产日韩中文字幕在线| 日韩av在线免费| 91视频九色网站| 国产在线视频2019最新视频| 亚洲欧洲一区二区三区久久| 91亚洲午夜在线| 欧美裸体男粗大视频在线观看|