

如何评价Cloudflare Pingora?
Pingora 是一个 Rust 异步多线程框架,用于构建 HTTP 代理服务,已在 Cloudflare 内部使用多年,据称每秒处理超过 4000 万个互联网请求。
截至目前,Pingora 已在 Cloudflare 的全球网络中处理了近千万亿的互联网请求。

CloudFlare厉害呀!居然还能把性能优化到比nginx高这么多!
我之前测试过用Actix-web写服务程序,替代nginx,发现两者的资源消耗是差不多的

为何Nginx要用多进程架构而非多线程?
为何Redis宁愿用单线程也不敢用多线程?
因为C语言处理多线程比较难受,容易出错,没有规避数据竞争的手段,总不能所有指针都加锁吧。
而Rust通过禁止多个可变引用或者一个可变引用多个不可变同时存在,还有Send、Sync标记型trait等方式在编译期规避数据竞争,让程序员大胆地去写多线程代码。
这就是为啥Rust能赋予servo一些以前用C++不敢搞的优化手段的原因。

大厂去 Nginx 是个趋势。
百度 BFE:我性能不如 Nginx,但是我安全稳定可维护。
Cloudflare:不好意思,我不仅安全稳定可维护,性能还要更好。
Dropbox:我直接用 Envoy
阿里:嗯,Tengine 不算 Nginx :),Higress 也基于 Envoy
我:用云厂商的负载均衡,其他功能在应用服务器上实现。
Nginx 做反代、负载均衡很好很方便,但是要开发新功能(不管是 C 还是 Lua),那体验就很差了。

有没有一种可能,就是哪怕它不改语言,重构也能-70%?
重构是一回事,换语言是另一回事,它们之间没有特别强烈的联系。如果你说的所谓重构是指伪代码完全不变,语义一致地翻译到另一种语言的话,我相信它们的性能不会有多少本质区别。
来到你的例子,说白了就是换轮子了,这两个代码互相之间已经没有太多联系了,它们唯一的相同点就是功能还是差不多的,里面的底子翻译到伪代码可能已经差的妈都不认识了,和用哪种语言实现没有太大的关系。

主要性能优势来源于连接复用和 lua 变成 rust
个人认为这种负载调度上 stealing 未必比 share nothing 更好

开源了,不知道开源版有没有阉割掉什么东西。
https://github.com/cloudflare/pingora

这可真是,一看到别人换了,立马开始吐槽Nginx各种不好,想当年也是大家的小甜甜吧,这么快就变成牛夫人了,各位可真是独立思想者哦。
就问问各位最复杂的操作难道不过是从网上复制下 伪静态规则, 搞点网址重写,高端玩家配点upstream玩点反向代理,居然上升到多进程架构了,甚至apache都绰绰有余了吧。
也不看看对象,好歹看看人家可是Cloudflare哦,靠CDN吃饭的,就问问你们手里那点可怜的并发,有啥好看的。

Cloudflare的业务毕竟跟nginx绝大多数用户都不同,绝大多数用户后面没几个upstream服务器,每个worker一个连接池也没啥。
- 1
- 2
-
如何评价国产游戏黑神话:悟空?125条回答 2024-06-13 02:25
-
你是否赞同李佳琦怼网友觉得眉笔贵应反思自己?91条回答 2023-09-11 23:49
-
如何看待大叔地铁玩手机被女子质疑偷拍?87条回答 2023-06-11 17:29
-
如何看待太古里牵手门连衣裙爆火?81条回答 2023-06-10 23:21
-
如何看待李佳琦为花西子眉笔之事哭着道歉?80条回答 2023-09-11 23:41
-
如何看待网红边娥英在柬埔寨去世?72条回答 2023-06-13 05:49
-
如何看待被撞死小学生母亲被网暴?72条回答 2023-06-03 02:40
-
如何看待学校食堂吃出老鼠头,官方回应为鸭脖事件?71条回答 2023-06-10 22:51