Cloudflare放弃Nginx并转用Rust编写的自研Pingora软件

长期以来,Cloudflare 都依赖于 Nginx 作为其 HTTP 代理堆栈的一部分。但现在,其已替换为由 Rust 编写的自研 Pingora 软件。该公司宣称,Pingora 每日可处理超过一万亿次请求。在提供更高性能的同时,CPU 和内存资源的开销还仅为旧方案的三分之一。

8df8e95e2889ae3c622f4fbb754fc729

据悉,Cloudflare 发现 Nginx 的工作进程架构存在缺陷 —— 尤其是在 CPU 资源方面。此外 Nginx 也被证明难以扩展,以满足他们的需求。

有鉴于此,Cloudflare 工程师一直在埋头开发内部解决方案,并选择了具有更高内存安全性、同时仍提供近似 C 语言性能的 Rust 编程语言。

5b40edcec8fd2f7ff16853603be31d97

值得一提的是,Cloudflare 还为 Rust 实现了自己的 HTTP 库,以满足其各种不同的需求。此外 Pingora 采用了多线程,而非多进程架构。

最终在生产环境中,Pingora 可在相同流量负载的情况下,较旧服务减少约 70% / 67% 的 CPU 与内存资源开销。

cfc33f1e03cfae79540b9e836ddf60d9

除了惊人的性能优势,Rust 编程语言还在确保 Pingora 安全性上起到了很大程度的作用。

唯一的遗憾,就是 Pingora 尚未开源 —— 尽管 Cloudflare 表示其正在制定计划,但目前该 HTTP 代理仍仅被该公司所使用。

订阅评论
提醒
guest的头像

0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x