天天看點

Cloudflare放棄Nginx并轉用Rust編寫的自研Pingora軟體

作者:cnBeta

長期以來,Cloudflare 都依賴于 Nginx 作為其 HTTP 代理堆棧的一部分。但現在,其已替換為由 Rust 編寫的自研 Pingora 軟體。該公司宣稱,Pingora 每日可處理超過一萬億次請求。在提供更高性能的同時,CPU 和記憶體資源的開銷還僅為舊方案的三分之一。

Cloudflare放棄Nginx并轉用Rust編寫的自研Pingora軟體

據悉,Cloudflare 發現 Nginx 的工作程序架構存在缺陷 —— 尤其是在 CPU 資源方面。此外 Nginx 也被證明難以擴充,以滿足他們的需求。

有鑒于此,Cloudflare 工程師一直在埋頭開發内部解決方案,并選擇了具有更高記憶體安全性、同時仍提供近似 C 語言性能的 Rust 程式設計語言。

Cloudflare放棄Nginx并轉用Rust編寫的自研Pingora軟體

值得一提的是,Cloudflare 還為 Rust 實作了自己的 HTTP 庫,以滿足其各種不同的需求。此外 Pingora 采用了多線程,而非多程序架構。

最終在生産環境中,Pingora 可在相同流量負載的情況下,較舊服務減少約 70% / 67% 的 CPU 與記憶體資源開銷。

Cloudflare放棄Nginx并轉用Rust編寫的自研Pingora軟體

除了驚人的性能優勢,Rust 程式設計語言還在確定 Pingora 安全性上起到了很大程度的作用。

唯一的遺憾,就是 Pingora 尚未開源 —— 盡管 Cloudflare 表示其正在制定計劃,但目前該 HTTP 代理仍僅被該公司所使用。