<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # NYTimes 架構:無頭,無主控,無單點故障 > 原文: [http://highscalability.com/blog/2014/1/13/nytimes-architecture-no-head-no-master-no-single-point-of-fa.html](http://highscalability.com/blog/2014/1/13/nytimes-architecture-no-head-no-master-no-single-point-of-fa.html) ![](https://img.kancloud.cn/7a/a8/7aa86ee9eeb29544915110232ac7a459_240x80.png) 紐約時報(NYTimes)的系統架構師 Michael Laing 向[表示了極大的敬意](http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/2014-January/032920.html),使他們了解 [RabbitMQ](http://www.rabbitmq.com/) 的使用以及 RabbitMQ 郵件列表中的整體體系結構。 結束語表明這絕對是一個可以學習的架構: > 盡管 Fabrik 看起來很復雜,但它具有簡單的組件,并且主要是原理和管道。 掌握的關鍵點是沒有頭腦,沒有主人,沒有單點故障。 在撰寫本文時,我可以看到組件發生故障(不是 RabbitMQ),并且我們正在對其進行修復,以使它們更加可靠。 但是系統不會失敗,用戶可以連接,并且消息可以傳遞,無論如何-所有這些都在設計參數之內。 由于很短,因此,我不能說得更好,這里我只復制幾個原始資源: > 簡短說明一下,感謝 RabbitMQ 團隊的出色產品。 > > 我們一流的在線產品 www.nytimes.com 具有新外觀和新基礎,現在包括使用 RabbitMQ 實現的消息傳遞體系結構。 > > 這種架構- Fabrik -在俄勒岡州和都柏林的 6 個 AWS 區域中分布了數十個 RabbitMQ 實例。 實例分為“批發”和“零售”兩層。 通過 websockets / sockjs 連接到客戶端。 > > 該系統自今天啟動以來,已自動擴展到約 500,000 個用戶。 連接時間保持在 200ms 左右。 > > Fabrik 提供突發新聞,視頻提要等訂閱服務,并將添加更多基于事件的服務。 它還支持與注冊用戶的訂閱狀態有關的個人消息傳遞。 > > 沒有 RabbitMQ,該系統將無法實現。 這是一個無處不在的組件,從未動搖或失敗過。 > > We are using: a single Amazon Linux AMI, RabbitMQ, Cassandra 2, python 2 > > 我們將皮卡搭配龍卷風和 libev 用于 nytuseaбrik 批發和零售產品; 我們的內部客戶使用 Java 和 PHP。 > > 我們使用 Rabbit MQ 作為消息傳遞系統。 目前,我們處理的消息包括突發新聞警報和實時視頻警報。 我們的內部客戶通過 AMQP 向 fabrik 發送這些消息。 然后,我們將它們發送到堆棧中,以確保它們已交付。 > > 我們在堆棧的所有層都有 Rabbit,并用鐵鍬將它們連接起來。 我們自己的內部代碼有助于根據那里的服務級別路由消息。 某些消息(例如突發新聞)必須盡快發出。 因此,我們將它們散布到整個群集中,然后將它們鏟到其他區域的群集中進行處理。 消息從那里發送到前端進行傳遞。 > > 我們還將 Rabbit 用于個別郵件。 如果您是 NYTimes 的注冊用戶,我們可以親自向您發送消息。 信用卡到期之類的事情。 > > 在生產中,我們在 c1-xlarges 的每個區域都有一個 RabbitMQ 客戶端 3 集群和一個核心 3 集群。 弗吉尼亞州 c1 介質的代理群集將客戶端連接到客戶端群集。 所有服務都是并行的,因此我們可以添加更多的核心和客戶端。 > > 零售層會自動縮放并使用 c1-medium,并且將單個兔子鏟子連接到其中一只核心兔子。 每個 python websocket / sockjs 網關最多支持 10 萬個客戶端。 > > 我們將自動部署到 AWS 虛擬私有云中的子網中。 客戶端通過最小的延遲被路由到最快的健康區域。 > > 在技??術組件中,網關是最復雜的。 我們將逐步將其轉移到開源中,并且第一部分可能是 python websocket / sockjs 庫,坦率地說,它擊敗了大多數其他內容,并完全符合相關標準。 可以粗略地認為它是由 python 管理的 C 協同進程,因此,可以在其他語言/環境中重用。 > > 我們在 2 個區域/ 6 個區域中有一個 12 節點的 Cassandra 集群。 它用于消息的持久性和緩存。 我們不在 RabbitMQ 中使用持久性。 我們的服務是冪等的,重要的消息可能會被多次復制,從而創造有意競速的條件,從而以最快的速度獲勝。 > > Although it may seem complex, Fabrik?has simple components and is mostly principles and plumbing. The key point to grasp is that there is no head, no master, no single point of failure. As I write this I can see components failing (not RabbitMQ), and we are fixing them so they are more reliable. But the system doesn't fail, users can connect, and messages are delivered, regardless - all within design parameters. ## 相關文章 * [在 Reddit 上](http://www.reddit.com/r/programming/comments/1v4gzj/nytimes_architecture_system_doesnt_fail_users_can/) 一篇非常有趣的文章。 只是有機會略讀,但我期待學習更多。 一個快速的問題:我注意到報價的字符集似乎存在問題(也許是從復制/粘貼時起?)。 NYTimes 架構名稱周圍有一些奇怪的符號。 我已將圖像上傳到 imgur,并提供了它對我的外觀的屏幕截圖。 沒什么大不了的,但以為您可能想知道。 您可以在 [http://imgur.com/9IfuLX5](http://imgur.com/9IfuLX5) 上看到圖像。 肖恩,可能是因為您的瀏覽器未設置為查看或接受 utf-8 字符? 托德(Todd),帶有說明鏈接的錯字-文章將其拼寫為解密 這就是將字符發布到郵件列表的方式
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看