日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从上百幅架构图中学大型网站建设经验(上)

發布時間:2025/3/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从上百幅架构图中学大型网站建设经验(上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/v_JULY_v/article/details/6839360

引言

??? 近段時間以來,通過接觸有關海量數據處理和搜索引擎的諸多技術,常常見識到不少精妙絕倫的架構圖。除了每每感嘆于每幅圖表面上的繪制的精細之外,更為架構圖背后所隱藏的設計思想所嘆服。個人這兩天一直在搜集各大型網站的架構設計圖,一為了一飽眼福,領略各類大型網站架構設計的精彩之外,二來也可供閑時反復琢磨體會,何樂而不為呢?特此,總結整理了諸如國外wikipedia,Facebook,Yahoo!,YouTube,MySpace,Twitter,國內如優酷網等大型網站的技術架構(本文重點分析優酷網的技術架構),以饗讀者。

??? 本文著重凸顯每一幅圖的精彩之處與其背后含義,而圖的說明性文字則從簡從略。ok,好好享受此番架構盛宴吧。當然,若有任何建議或問題,歡迎不吝指正。謝謝。

  • 1、WikiPedia 技術架構

???????????????????????????????????????????? WikiPedia 技術架構圖Copy @Mark Bergsma

  • 來自wikipedia的數據:峰值每秒鐘3萬個?HTTP?請求 每秒鐘?3Gbit?流量, 近乎375MB?350 臺?PC?服務器。
  • GeoDNSA :40-line patch for BIND to add geographical filters support to the existent views in BIND", 把用戶帶到最近的服務器。GeoDNS 在 WikiPedia 架構中擔當重任當然是由 WikiPedia 的內容性質決定的--面向各個國家,各個地域。
  • 負載均衡:LVS,請看下圖:
    • 2、Facebook 架構

    ????????????????????????????????????Facebook 搜索功能的架構示意圖

    ??? 細心的讀者一定能發現,上副架構圖之前出現在此文之中:從幾幅架構圖中偷得半點海里數據處理經驗。本文與前文最大的不同是,前文只有幾幅,此文系列將有上百幅架構圖,任您盡情觀賞。

    • 3、Yahoo! Mail 架構

    ?????????????????????????????????????????????? Yahoo! Mail 架構

    ??? Yahoo! Mail 架構部署了 Oracle RAC,用來存儲 Mail 服務相關的 Meta 數據。

    • 4、twitter技術架構

    ?????????????????????????????????????????????????????twitter的整體架構設計圖

    ??? twitter平臺大致由twitter.com、手機以及第三方應用構成,如下圖所示(其中流量主要以手機和第三方為主要來源):

    ??? 緩存在大型web項目中起到了舉足輕重的作用,畢竟數據越靠近CPU存取速度越快。下圖是twitter的緩存架構圖:

    ??? 關于緩存系統,還可以看看下幅圖:

    • 5、Google App Engine技術架構

    ??????????????????????????????????????????? GAE的架構圖

    ??? 簡單而言,上述GAE的架構分為如圖所示的三個部分:前端,Datastore和服務群。

  • 前端包括4個模塊:Front End,Static Files,App Server,App Master。
  • Datastore是基于BigTable技術的分布式數據庫,雖然其也可以被理解成為一個服務,但是由于其是整個App Engine唯一存儲持久化數據的地方,所以其是App Engine中一個非常核心的模塊。其具體細節將在下篇和大家討論。

  • 整個服務群包括很多服務供App Server調用,比如Memcache,圖形,用戶,URL抓取和任務隊列等。

    • 6、Amazon技術架構

    ??????????????????????????????????? Amazon的Dynamo Key-Value存儲架構圖

    ??? 可能有讀者并不熟悉Amazon,它現在已經是全球商品品種最多的網上零售商和全球第2大互聯網公司。而之前它僅僅是一個小小的網上書店。ok,下面,咱們來見識下它的架構。

    ??? Dynamo是亞馬遜的key-value模式的存儲平臺,可用性和擴展性都很好,性能也不錯:讀寫訪問中99.9%的響應時間都在300ms內。按分布式系統常用的哈希算法切分數據,分放在不同的node上。Read操作時,也是根據key的哈希值尋找對應的node。Dynamo使用了 Consistent Hashing算法,node對應的不再是一個確定的hash值,而是一個hash值范圍,key的hash值落在這個范圍內,則順時針沿ring找,碰到的第一個node即為所需。

    ??? Dynamo對Consistent Hashing算法的改進在于:它放在環上作為一個node的是一組機器(而不是memcached把一臺機器作為node),這一組機器是通過同步機制保證數據一致的。

    ??? 下圖是分布式存儲系統的示意圖,讀者可觀摩之:

    ??? Amazon的云架構圖如下:

    ?????????????????????????????????????????? Amazon的云架構圖

    • 7、優酷網的技術架構

    ??? 從一開始,優酷網就自建了一套CMS來解決前端的頁面顯示,各個模塊之間分離得比較恰當,前端可擴展性很好,UI的分離,讓開發與維護變得十分簡單和靈活,下圖是優酷前端的模塊調用關系:

    ??? 這樣,就根據module、method及params來確定調用相對獨立的模塊,顯得非常簡潔。下圖是優酷的前端局部架構圖:

    ??? 優酷的數據庫架構也是經歷了許多波折,從一開始的單臺MySQL服務器(Just Running)到簡單的MySQL主從復制、SSD優化、垂直分庫、水平sharding分庫。

  • 簡單的MySQL主從復制。
    MySQL的主從復制解決了數據庫的讀寫分離,并很好的提升了讀的性能,其原來圖如下:

    其主從復制的過程如下圖所示:

    但是,主從復制也帶來其他一系列性能瓶頸問題:

  • 寫入無法擴展
  • 寫入無法緩存
  • 復制延時
  • 鎖表率上升
  • 表變大,緩存率下降
  • 那問題產生總得解決的,這就產生下面的優化方案。

  • ?MySQL垂直分區

    ??? 如果把業務切割得足夠獨立,那把不同業務的數據放到不同的數據庫服務器將是一個不錯的方案,而且萬一其中一個業務崩潰了也不會影響其他業務的正常進行,并且也起到了負載分流的作用,大大提升了數據庫的吞吐能力。經過垂直分區后的數據庫架構圖如下:

    ??? 然而,盡管業務之間已經足夠獨立了,但是有些業務之間或多或少總會有點聯系,如用戶,基本上都會和每個業務相關聯,況且這種分區方式,也不能解決單張表數據量暴漲的問題,因此為何不試試水平sharding呢?

  • ?MySQL水平分片(Sharding)

    ??? 這是一個非常好的思路,將用戶按一定規則(按id哈希)分組,并把該組用戶的數據存儲到一個數據庫分片中,即一個sharding,這樣隨著用戶數量的增加,只要簡單地配置一臺服務器即可,原理圖如下:

    ??如何來確定某個用戶所在的shard呢,可以建一張用戶和shard對應的數據表,每次請求先從這張表找用戶的shard id,再從對應shard中查詢相關數據,如下圖所示:??? 但是,優酷是如何解決跨shard的查詢呢,這個是個難點,據介紹優酷是盡量不跨shard查詢,實在不行通過多維分片索引、分布式搜索引擎,下策是分布式數據庫查詢(這個非常麻煩而且耗性能)。

  • ?緩存策略

    貌似大的系統都對“緩存”情有獨鐘,從http緩存到memcached內存數據緩存,但優酷表示沒有用內存緩存,理由如下:

  • 避免內存拷貝,避免內存鎖
  • 如接到老大哥通知要把某個視頻撤下來,如果在緩存里是比較麻煩的
  • 而且Squid 的 write() 用戶進程空間有消耗,Lighttpd 1.5 的 AIO(異步I/O) 讀取文件到用戶內存導致效率也比較低下。

    但為何我們訪問優酷會如此流暢,與土豆相比優酷的視頻加載速度略勝一籌?這個要歸功于優酷建立的比較完善的內容分發網絡(CDN),它通過多種方式保證分布在全國各地的用戶進行就近訪問——用戶點擊視頻請求后,優酷網將根據用戶所處地區位置,將離用戶最近、服務狀況最好的視頻服務器地址傳送給用戶,從而保證用戶可以得到快速的視頻體驗。這就是CDN帶來的優勢,就近訪問。

    ??? 附注:1、此段優酷網的技術架構整理于此處:http://www.itivy.com/ivy/archive/2011/8/13/the-architecture-of-youku.html;2、同時推薦一個非常好的站點:http://www.dbanotes.net/)。從上百幅架構圖中學得半點大型網站建設經驗(上),完。

    后記

    ??? 此篇文章終于寫完了,從昨日有整理此文的動機后,到今日上午找電腦上網而不得,再到此刻在網吧完成此文。著實也體味了一把什么叫做為技術狂熱的感覺。大型網站架構是一個實戰性很強的東西,而你我或許現在暫時還只是一個在外看熱鬧的門外漢而已。不過,沒關系,小魚小蝦照樣能暢游汪汪大洋,更何況日后亦能成長為大魚大鯊。

    ??? ok,歡迎關注從上百幅架構圖中學得半點大型網站建設經驗(下)。有任何問題或錯誤,歡迎不吝指正。謝謝大家。本文完。

    總結

    以上是生活随笔為你收集整理的从上百幅架构图中学大型网站建设经验(上)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品一区二区三区在线免费观看 | 天堂av2024| 3d动漫精品啪啪一区二区竹菊 | 亚洲电影影音先锋 | 人与禽一级全黄 | 四虎永久在线视频 | 亚洲成人精品 | 大粗鳮巴久久久久久久久 | 日韩欧美精品一区二区三区 | aaa亚洲 | 日韩在线三级 | 国产一区二区视频在线免费观看 | 中文视频一区二区 | 日韩欧美国产一区二区 | 日韩精品在线一区二区 | 大陆一级片 | 在线看福利影 | 日韩av不卡一区 | 日韩城人网站 | 久久精品免费一区二区 | 黄av网站| 久久久久99精品成人片试看 | 高级毛片| bt男人天堂| 欧美一级片在线看 | 欧美经典一区二区 | 涩涩网站在线观看 | 在线看中文字幕 | 一本色综合 | 久久久丁香 | 国产精品久久久久久在线观看 | 欧美综合第一页 | 国产xxx | 久久久一 | 依依综合网| 思思久久久 | 国产嫩bbwbbw高潮 | 欧洲一区二区三区 | 日日操日日爽 | 日韩大片免费在线观看 | 玉女心经在线看 | 色人综合| 久久国产亚洲 | 日日夜夜免费 | 免费男女视频 | 毛片xxx | 肉色丝袜小早川怜子av | 无码人妻丰满熟妇区毛片蜜桃精品 | 日韩免费高清视频网站 | 久草色视频| h片免费观看 | 亚洲精品另类 | 日本视频黄 | 狠狠操婷婷 | 美女被捅个不停 | 1024香蕉视频 | cao我| www国产亚洲精品 | 国产精品女人精品久久久天天 | 超碰在线观看91 | 777色婷婷| 波多野av在线 | 善良的女邻居在线观看 | www成人在线观看 | 精品视频一区二区三区在线观看 | 四色成人av永久网址 | 日韩一级片视频 | 黄色在线观看av | 国产精品乱码一区 | 99久久久无码国产精品性 | 亚洲毛片视频 | 欧美在线观看视频一区二区 | 911香蕉| 婷婷伊人综合中文字幕 | 伊人春色在线视频 | 日本大尺度电影免费观看全集中文版 | 亚洲第一在线视频 | 天天爽天天爱 | 国产综合亚洲精品一区二 | 一区免费观看 | www.夜夜骑| 天天色影网| av色区 | 超碰97色 | 欧美日韩一二三四区 | 久久青草热| 精品一区二区视频 | 亚洲精品在线免费观看视频 | 国产三级在线播放 | 免费黄色网址在线观看 | 国产九色在线播放九色 | 国产又爽又黄无码无遮挡在线观看 | 国产精品无码免费在线观看 | 蜜乳av网站 | 国产精品久久久免费观看 | 亚洲网站av| 亚洲色图国产精品 | 极品尤物一区二区 | 欧美大奶在线 |