来自 @PotatoTooLarge 的投稿,他设计了一道极其简单的需要 GAT 的功能才可以编译运行的题目,来挑战一下吧!
playground: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=ca7539d631b0586f651e75360f7c0f6f
转自 Rust 视界
Cloudflare放弃了Nginx,转而使用Rust编写的Pingora
Cloudflare长期以来一直依赖Nginx作为其HTTP代理栈的一部分,但现在已经用他们内部的、由Rust编写的Pingora软件取代了它,据说该软件每天为超过一万亿个请求提供服务,并提供更好的性能,同时只使用大约三分之一的CPU和内存资源。
在生产中,Pingora与旧服务相比,在相同的流量负荷下,CPU的消耗减少了70%,内存减少了67%。
除了惊人的性能优势,Pingora还被认为更安全,这在很大程度上要归功于Rust的使用。
Cloudflare发现,Nginx的工作进程架构有很多缺点,特别是在CPU资源方面。事实证明,Nginx也很难扩展到他们的需求。
Cloudflare的工程师一直在从头开始开发Pingora,作为一个内部解决方案。选择Rust编程语言是因为它的内存安全,同时仍然提供类似C语言的性能。Cloudflare还为Rust实现了他们自己的HTTP库,以适应他们所有的不同需求。Pingora采用了多线程架构,而不是多进程。
唯一的缺点是Pingora还没有开源,不过有开源计划。
https://www.phoronix.com/news/CloudFlare-Pingora-No-Nginx https://blog.cloudflare.com/how-we-built-pingora-the-proxy-that-connects-cloudflare-to-the-internet/
From 日报小组 @huangjj27
社区学习交流平台订阅:
Rust.cc论坛: 支持rss
微信公众号:Rust语言学习交流