日韩性视频-久久久蜜桃-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,歡迎關注從上百幅架構圖中學得半點大型網站建設經驗(下)。有任何問題或錯誤,歡迎不吝指正。謝謝大家。本文完。

    總結

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

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

    主站蜘蛛池模板: 色综合一区二区 | 亚洲欧美不卡 | 爱操在线| 大陆女明星乱淫合集 | 男女视频一区 | 深喉口爆一区二区三区 | 欧美视频h| 一区二区三区四区在线播放 | 5d肉蒲团之性战奶水 | 亚洲综合精品国产一区二区三区 | 精品无码久久久久久久久成人 | 亚洲av无码一区二区二三区 | 日日夜夜免费精品 | 国产日韩一区二区在线 | 日本韩国三级 | 中文资源在线播放 | 免费黄色成人 | 久久精品国产欧美亚洲人人爽 | 一区二区三区四区在线免费观看 | 直接看毛片| 娇妻第一次尝试交换的后果 | 国产精品久久久久久久久久久久久久久久 | www色com | 少妇人妻真实偷人精品视频 | 久久久久久久久久久久久av | 啪啪国产精品 | 九月婷婷丁香 | 男人和女人插插 | 日本一区二区视频在线观看 | 国产另类专区 | 日本三级大全 | 黄色欧美大片 | 97se亚洲国产综合在线 | 九色91丨porny丨丝袜 | 国产99久久精品 | 福利久久久 | 蜜桃av成人 | 久色资源 | 国产精品久久成人 | 夜色在线视频 | 久久入| 国产免费一区二区三区最新6 | 国产91一区二区三区在线精品 | 奇米在线视频 | 尤物在线观看视频 | 国产成人+综合亚洲+天堂 | 午夜在线免费视频 | 色女生影院 | 超碰免费公开在线 | 一级黄色大全 | 国产亚洲欧美精品久久久久久 | 日韩成人福利视频 | 91蝌蚪在线观看 | 亚洲男女 | xxx麻豆| 永久免费精品影视网站 | 少妇色| 日本久久综合 | www狠狠| 日韩欧美一区在线 | 肉丝袜脚交视频一区二区 | 久草一区| 午夜精品视频一区 | 麻豆午夜 | 91天天| 国产噜噜噜噜久久久久久久久 | 国产精品久久久爽爽爽麻豆色哟哟 | 成人久久精品人妻一区二区三区 | 精品国精品国产自在久不卡 | 男男大尺度 | 欧美高清视频一区二区三区 | 福利视频第一页 | 亚洲精品福利在线观看 | 一本久道视频一本久道 | 亚洲国产美女视频 | 亚洲欧美另类在线视频 | 高潮久久久 | 天天综合网久久综合网 | 打屁股av| 肉丝肉足丝袜一区二区三区 | 中文字幕精品亚洲 | 国产激情久久久久 | 巨乳xxx| 日韩av在线播放观看 | 国内精品91 | 日韩极品在线 | 久久国产激情视频 | 韩国美女视频在线观看18 | 国产视频久久久久 | 亚洲成a人无码 | 少妇精品无码一区二区 | 在线黄网| 亚洲精品国产无码 | 日韩免费三级 | 高清中文字幕mv的电影 | 日韩精品免费一区二区三区 | 婷婷777| 中文字幕av免费 | 色综合色综合网色综合 |