Cloudflare 長期依賴 Nginx 作為其 HTTP 代理堆棧的一部分,但現在已將其替換為內部的 Rust 編寫的 Pingora 軟件,據說該軟件每天服務超過一萬億個請求並提供更好的性能,同時僅使用大約三分之一的CPU 和內存資源。

Cloudflare 已經“超越”了 Nginx,最終創建了自己的 HTTP 代理堆棧。 Cloudflare 發現 Nginx 的工作進程架構存在缺陷,尤其是在 CPU 資源方面。 Nginx 也被證明難以擴展以滿足他們的需求。

Cloudflare 工程師一直在從頭開始開發 Pingora 作為內部解決方案。選擇 Rust 編程語言是因為它的內存安全性,同時仍提供類似 C 的性能。 Cloudflare 還為 Rust 實現了自己的 HTTP 庫,以滿足他們所有不同的需求。 Pingora 採用多線程架構而不是多進程。

至於 Pingora 的性能優勢:

在生產中,與我們在相同流量負載下的舊服務相比,Pingora 消耗的 CPU 和內存減少了約 70% 和 67%。

除了驚人的性能優勢之外,Pingora 還被認為更安全,這在很大程度上要歸功於 Rust 的使用。

希望了解更多有關 Cloudflare 的 Pingora 項目的信息可以通過 Cloudflare 博客。唯一的缺點是 Pingora 尚未開源——Cloudflare 表示他們正在製定計劃,但目前該 HTTP 代理尚未公開。

Categories: IT Info