<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 關于 Disqus 的更新:它仍然是實時的,但是 Go 摧毀了 Python > 原文: [http://highscalability.com/blog/2014/5/7/update-on-disqus-its-still-about-realtime-but-go-demolishes.html](http://highscalability.com/blog/2014/5/7/update-on-disqus-its-still-about-realtime-but-go-demolishes.html) [![](https://img.kancloud.cn/61/7c/617c1dcaadb86e8331813b2fd54434ab_320x168.png)](https://farm3.staticflickr.com/2937/14110625651_4d66420224_o.png) 我們上次在 Disqus 上發表的文章: [Disqus 如何以每秒 165K 消息且小于.2 秒的延遲](http://highscalability.com/blog/2014/4/28/how-disqus-went-realtime-with-165k-messages-per-second-and-l.html)進行實時處理,雖然有些過時了,但是 Disqus 上的人們 一直在忙于實現,而不是在談論,所以我們對他們現在在做什么并不了解,但是我們確實對 John Watson 的 [C1MM 和 NGINX](https://www.youtube.com/watch?v=yL4Q7D4ynxU) 作了簡短的更新,并撰寫了一篇文章 [出這個 Go 東西](http://blog.disqus.com/post/51155103801/trying-out-this-go-thing)。 因此,Disqus 增長了一些: * 13 億獨立訪客 * 100 億頁面瀏覽量 * 5 億用戶參與討論 * 300 萬個社區 * 2500 萬條評論 他們仍然都是關于實時的,但是 Go 在其 Realtime 系統中取代了 Python: * 原始的實時后端是用非常輕量級的 Python + gevent 編寫的。 * 實時服務是 CPU 密集型任務與大量網絡 IO 的混合體。 Gevent 可以毫無問題地處理網絡 IO,但是在更高的競爭中,CPU 阻塞了一切。 切換到 Go 消除了該爭用,這是所看到的主要問題。 * 仍可在 5 臺 Nginx 機器上運行。 * 使用 NginxPushStream,它支持 EventSource,WebSocket,Long Polling 和 Forever Iframe。 * 所有用戶都已連接到這些計算機。 * 在正常的一天中,每臺計算機看到 3200 個連接/秒,100 萬個連接,150K 包/秒的 TX 和 130K 包/秒的 RX,150 mbit / s 的 TX 和 80 mbit / s 的 RC,從頭到尾的< 15ms 延遲 結束(比 Javascript 渲染評論要快) * 一開始有很多資源枯竭的問題。 給出了 Nginx 和 OS 的配置,可幫助緩解問題,對其進行調整以應對許多連接移動少量數據的情況。 * 優先使用網絡帶寬。 * 使用 10 千兆位網絡接口卡很有幫助。 * 啟用 gzip 很有幫助,但是 Nginx 為 gzip 的每個連接預先分配了很多內存,但是由于注釋很小,所以這太過分了。 降低 Nginx 緩沖區大小可以減少內存不足的問題。 * 隨著消息速率的提高,在每秒處理 10k +消息的高峰時,計算機達到了極限,在最壞的情況下,端到端延遲達到了數秒和數分鐘。 * 切換到 Go。 * 節點未選擇,因為它不能很好地處理 CPU 密集型任務。 * Go 不能直接訪問數據庫。 它消耗 RabbitMQ 的隊列并發布到 Nginx 前端。 * 沒有使用 Go 框架。 這是一個很小的組件,Disqus 的其余部分仍然是 Django。 * 之所以喜歡 Go,是因為它的性能,本機并發性以及對 Python 程序員的熟悉程度。 * 在短短一周內就建立了替換系統,并取得了令人矚目的成果: * 端到端延遲平均不到 10 毫秒。 * 當前消耗大約 10-20%的可用 CPU。 大幅減少。 * 他們想更好地利用資源,而不是增加更多機器: * 對于已經完成的工作量,我們不想橫向擴展更多。 向問題扔出越來越多的硬件并不總是最好的解決方案。 最后,擁有更快的產品也會產生自己的利益。 ## 相關文章 * [在黑客新聞](https://news.ycombinator.com/item?id=7711110)上/ [在 Reddit](http://www.reddit.com/r/Python/comments/2504ni/update_on_disqus_its_still_about_realtime_but_go/) 上 對評論感興趣的是,“ Go 不能直接訪問數據庫。它會占用 RabbitMQ 的隊列并發布到 Nginx 前端”,但是我很難想象那里到底發生了什么。 可以再充實一點嗎? 理查德:鏈接的談話可能是您獲得更多細節的最佳選擇,但我認為想法是,Disqus 的實時系統通過 RabbitMQ 獲得新評論并通過 nginx 發送通知-它不具有長期狀態 數據庫。 因為我們實質上是在這里討論通知系統,所以這很有意義。 我和理查德在一起。 對發生故障時會發生什么感到好奇。 因此,您用流隊列替換了 Django(ORM),您的結論是 Go 的性能優于 Python? 它甚至與編程語言有什么關系? 通常,當人們更改語言時,他們也會更改應用程序的架構 但是很難看出提速的百分比來自于語言 @Velko,不,不是這樣。 通過閱讀有關其先前設置的文章,了解有關哪些部分發生了變化的更多信息。 我想知道他們是否嘗試過使用 pypy。 以我的經驗,使用 pypy 的 Python 和 Go 一樣快。 [PyPy](http://pypy.org/) PyPy 是 Python 語言(2.7.9 和 3.2.5)的一種快速,兼容的替代實現。 它具有幾個優點和獨特的功能 通過閱讀有關其先前設置的文章,了解有關哪些部分發生了變化的更多信息。
                  <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>

                              哎呀哎呀视频在线观看