探索未来网络的基石:Pingora框架
深度理解Pingora
Pingora是一个由Rust语言构建的高性能网络系统框架。它在云flare的实际运营中经受了考验,每天处理超过4亿次互联网请求,展现了其稳定性和可靠性。
技术剖析
Pingora充分利用了异步Rust的威力,保证了服务的速度和可靠性。它支持HTTP 1/2端到端代理,并能处理TLS连接(通过OpenSSL或BoringSSL)。此外,还提供gRPC和websocket的代理功能,以及优雅的重启机制。其定制化的负载均衡和故障切换策略赋予了开发者无尽的可能性。Pingora还兼容多种监控工具,确保服务的可观察性。
应用场景
- 当安全是你的首要之务时,选择Pingora吧,它以比C/C++更高的内存安全性保障你的服务。
- 如果你的服务对性能有着严格要求,Pingora以其高效运行,满足你的需求。
- 需要大量的定制化工作?Pingora的高可编程性让你可以随心所欲地调整和扩展。
开始使用
想要快速上手?查阅我们的快速启动指南,你会发现构建一个负载均衡器有多么简单。对于更深入的配置和运行教程,我们的用户指南涵盖了所有信息,包括如何基于Pingora框架构建自定义HTTP服务器和代理逻辑。
我们还提供了所有的crate API文档供开发者查阅。
值得关注的工作区crate
Pingora项目下包含了多个独立的crate,如:
pingora
:构建网络系统和代理的主要接口。pingora-core
:定义协议、功能和基本特性。pingora-proxy
:HTTP代理逻辑及相关API。pingora-error
:全项目通用的错误类型。pingora-http
:HTTP头定义及API。pingora-openssl
和pingora-boringssl
:SSL相关的扩展和API。pingora-ketama
:实现一致性哈希算法Ketama。pingora-limits
:高效的计数算法。pingora-load-balancing
:pingora-proxy的负载均衡算法扩展。pingora-memory-cache
:带有缓存锁的异步内存缓存,防止缓存踩踏问题。pingora-timeout
:更高效的异步定时器系统。TinyUfo
:pingora-memory-cache
背后的缓存算法。
系统要求
主要支持Linux环境,同时也尽力确保在Unix-like环境中编译通过。目前支持x86_64和aarch64架构。确保你的系统安装了Rust 1.72或更高版本,以及Clang和Perl 5用于特定库的构建。
参与贡献
请参阅我们的贡献指南,一同打造更好的Pingora。
许可证
该项目遵循Apache License, Version 2.0许可。
准备好了吗?让我们一起探索Pingora带来的无限可能吧!