Pingora框架由Cloudflare開發,其特點包括異步Rust編程、高效的HTTP、gRPC及websocket代理、TLS支持、優雅的重新載入以及可客製的負載均衡和故障轉移策略。這些功能讓Pingora成為一個魯棒、高效且高度可編程的網路代理框架。
Pingora簡介
Pingora是一個基於Rust語言的框架,用於構建快速、可靠且可編程的網路系統。Pingora已經經過戰場測試,它為超過數年的4000萬每秒互聯網請求提供服務。
特性亮點
異步Rust: 快速並且可靠。
HTTP 1/2端對端代理: 支持HTTP代理操作。
TLS支持: 透過OpenSSL或BoringSSL進行TLS操作。
gRPC和websocket代理: 支持更多協定的代理。
優雅多載: 系統可在不中斷服務的情況下進行更新或配置修改。
客製化負載均衡和故障轉移策略: 可根據需要調整策略。
多種可觀察性工具的支持: 方便進行系統監控和偵錯。
為什麽選擇Pingora
安全是首要任務: Pingora提供相較於C/C++更記憶體安全的服務。
服務對效能要求極高: Pingora保證了高速與效率。
服務需要廣泛的客製化: Pingora代理框架提供的API高度可編程。
快速開始
Pingora提供了快速入門指南,其中介紹了如何輕松構建負載均衡器。使用者指南涵蓋了更內送流量備援容錯機制題,比如如何配置和執行Pingora伺服器,以及如何構建自訂的HTTP伺服器和代理邏輯。
Pingora工作空間中的主要crate
Pingora : 用來構建網路系統和代理的公共介面crate。
Pingora-core : 定義了協定、功能和基礎特征。
Pingora-proxy : 構建HTTP代理的邏輯和API。
Pingora-error : Pingora中使用的通用錯誤型別。
Pingora-http : HTTP頭部定義和API。
Pingora-openssl & pingora-boringssl : 與SSL相關的擴充套件和API。
Pingora-ketama : Ketama一致性演算法。
Pingora-limits : 高效計數演算法。
Pingora-load-balancing : Pingora代理的負載均衡演算法擴充套件。
Pingora-memory-cache : 支持異步記憶體緩存,並帶有防止緩存雪崩的鎖。
Pingora-timeout : 更高效的異步定時器系統。
TinyUfo : Pingora-memory-cache後面的緩存演算法。
系統要求
作業系統
Linux作為第一環境和主要焦點。
盡力確保大多數程式碼能夠在Unix環境下編譯,比如在macOS下開發時(盡管可能會缺少一些特性)。
支持x86_64和aarch64架構。
Rust版本
Pingora實行最近支持Rust版本政策,至少是6個月之前的版本。
開源授權
計畫采用Apache License 2.0授權合約。
總結
Cloudflare的Pingora是一個功能豐富、可靠性強、可編程性高的Rust框架,它提供了構建先進網路服務的強大工具和API。從安全性、效能到客製化,Pingora為滿足現代互聯網服務的各種需求提供了強有力的支持。透過深入探索Pingora,開發者可充分利用Rust的優勢,構建出符合高標準要求的網路服務及代理。
文章精選
點 擊 關 註 並 掃 碼 添 加 進 交 流 群
領
取
「Rust
語
言
」
學
習
資
料
關註公眾號並回復 」pingora「 即可獲取計畫地址