當前位置: 妍妍網 > 碼農

Cloudflare 開源 Rust Pingora 框架,每秒支持超過4000萬的請求

2024-02-29碼農

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

    1. 安全是首要任務: Pingora提供相較於C/C++更記憶體安全的服務。

    2. 服務對效能要求極高: Pingora保證了高速與效率。

    3. 服務需要廣泛的客製化: 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「 即可獲取計畫地址