非死book 的系統架構

jopen 9年前發布 | 30K 次閱讀 系統架構 軟件架構

  來源http://www.quora.com/What-is-非死books-architecture (由Micha?l Figuière回答)

    根據我現有的閱讀和談話,我所理解的今天非死book的架構如下:

  • Web 前端是由 PHP 寫的。非死book 的 HipHop [1] 會把PHP轉成 C++ 并用 g++編譯,這樣就可以為模板和Web邏賀業務層提供高的性能。
  • 業務邏輯以Service的形式存在,其使用Thrift [2]。這些Service根據需求的不同由PHP,C++或Java實現(也可以用到了其它的一些語言……)
  • 用Java寫的Services沒有用到任何一個企業級的應用服務器,但用到了非死book自己的定制的應用服務器。看上去好像是重新發明輪子,但是這些Services只被暴露給Thrift使用(絕大所數是這樣),Tomcat太重量級了,即使是Jetty也可能太過了點,其附加值對 非死book所需要的沒有意義。
  • 持久化由MySQL, Memcached [3], 非死book 的 Cassandra [4], Hadoop 的 HBase [5] 完成。Memcached 使用了MySQL的內存Cache。非死book 工程師承認他們的Cassandra 使用正在減少,因為他們更喜歡HBase,因為它的更簡單的一致性模型,以到其MapReduce能力。
  • 離線處理使用Hadoop 和 Hive。
  • 日志,點擊,feeds數據使用Scribe [6],把其聚合并存在 HDFS,其使用Scribe-HDFS [7],因而允許使用MapReduce進行擴展分析。
  • BigPipe [8] 是他們的定制技術,用來加速頁面顯示。
  • Varnish Cache [9]用作HTTP代理。他們用這個的原因是高速和有效率。 [10].
  • 用來搞定用戶上傳的十億張照片的存儲,其由Haystack處理,非死book自己開發了一個Ad-Hoc存儲方案,其主要做了一些低層優化和“僅追加”寫技術 [11].
  • 非死book Messages 使用了自己的架構,其明顯地構建在了一個動態集群的基礎架構上。業務邏輯和持久化被封裝在一個所謂的’Cell’。每個‘Cell’都處理一部分用戶,新的‘Cell’可以因為訪問熱度被添加[12]。 持久化歸檔使用HBase [13]。
  • 非死book Messages 的搜索引擎由存儲在HBase中的一個倒置索引的構建。 [14]
  • 非死book 搜索引擎實現細節據我所知目前是未知狀態。
  • Typeahead 搜索使用了一個定制的存儲和檢索邏輯。 [15]
  • Chat 基于一個Epoll 服務器,這個服務器由Erlang 開發,由Thrift存取 [16]
  •     關于那些供給給上述組件的資源,下面是一些信息和數量,但是有一些是未知的:

  • 非死book估計有超過60,000 臺服務器[16]。他們最新的數據中心在俄勒岡州的Prineville,其基于完全自定設計的硬件[17] 那是最近才公開的 Open Compute 項目[18]。
  • 300 TB 的數據存在 Memcached 中處理 [19]
  • 他們的Hadoop 和 Hive 集群由3000 服務器組成,每臺服務器有8個核,32GB的內存,12TB的硬盤,全部有2萬4千個CPU的核,96TB內存和36PB的硬盤。 [20]
  • 每天有1000億的點擊量,500億張照片,100 billion hits per day, 50 billion photos, 3 萬億個對象被 Cache,每天130TB的日志(2010年7月的數據) [21]
  •     參考引用

        [1] HipHop for PHP: http://developers.非死book.com/blog/post/358
    [2] Thrift: http://thrift.apache.org/
    [3] Memcached: http://memcached.org/
    [4] Cassandra: http://cassandra.apache.org/
    [5] HBase: http://hbase.apache.org/
    [6] Scribe: https://github.com/非死book/scribe
    [7] Scribe-HDFS: http://hadoopblog.blogspot.com/2009/06/hdfs-scribe-integration.html
    [8] BigPipe: http://www.非死book.com/notes/非死book-engineering/bigpipe-pipelining-web-pages-for-high-performance/389414033919
    [9] Varnish Cache: http://www.varnish-cache.org/
    [10] 非死book goes for Varnish: http://www.varnish-software.com/customers/非死book
    [11] Needle in a haystack: efficient storage of billions of photos: http://www.非死book.com/note.php?note_id=76191543919
    [12] Scaling the Messages Application Back End: http://www.非死book.com/note.php?note_id=10150148835363920
    [13] The Underlying Technology of Messages: https://www.非死book.com/note.php?note_id=454991608919
    [14] The Underlying Technology of Messages Tech Talk: http://www.非死book.com/video/video.php?v=690851516105
    [15] 非死book’s typeahead search architecture: http://www.非死book.com/video/video.php?v=432864835468
    [16] 非死book Chat: http://www.非死book.com/note.php?note_id=14218138919
    [17] Who has the most Web Servers?: http://www.datacenterknowledge.com/archives/2009/05/14/whos-got-the-most-web-servers/
    [18] Building Efficient Data Centers with the Open Compute Project: http://www.非死book.com/note.php?note_id=10150144039563920
    [19] Open Compute Project: http://opencompute.org/
    [20] 非死book’s architecture presentation at Devoxx 2010: http://www.devoxx.com
    [21] Scaling 非死book to 500 millions users and beyond: http://www.非死book.com/note.php?note_id=409881258919

        (全文完)

     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!