日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Pingora正式開源:超強的Nginx替代品,每秒可處理4000萬請求!

來源: 責編: 時間:2024-02-29 14:33:42 236觀看
導讀2 月 28 日,Cloudflare 開源了其自研的 Nignx 替代品:Pingora。這是一個基于 Rust 打造的高速、可靠與可編程的網(wǎng)絡(luò)系統(tǒng)。目前,Cloudflare 已使用 Pingora 全面替代 Nginx 。經(jīng)過實戰(zhàn)檢驗,Pingora 每秒穩(wěn)定處理超過 4000

TBN28資訊網(wǎng)——每日最新資訊28at.com

2 月 28 日,Cloudflare 開源了其自研的 Nignx 替代品:Pingora。這是一個基于 Rust 打造的高速、可靠與可編程的網(wǎng)絡(luò)系統(tǒng)。目前,Cloudflare 已使用 Pingora 全面替代  Nginx 。經(jīng)過實戰(zhàn)檢驗,Pingora 每秒穩(wěn)定處理超過 4000 萬的網(wǎng)絡(luò)請求,持續(xù)服務(wù)數(shù)年。下面就來看一看 Pingora 有什么特別之處!TBN28資訊網(wǎng)——每日最新資訊28at.com

Cloudflare 是一個全球性的網(wǎng)絡(luò)性能和安全公司,它提供了一系列服務(wù)來幫助網(wǎng)站和應用程序改善其在線體驗、增加安全性并加速加載速度。Cloudflare 的主要服務(wù)包括:TBN28資訊網(wǎng)——每日最新資訊28at.com

  • 內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN):通過在全球各地分布的數(shù)據(jù)中心緩存和分發(fā)您的網(wǎng)站內(nèi)容,幫助加速網(wǎng)站和應用程序的加載速度。
  • DNS 服務(wù):提供可靠的 DNS 解析服務(wù),確保用戶能夠快速地訪問您的網(wǎng)站或應用程序。
  • 防火墻和安全性:保護您的網(wǎng)站免受 DDoS 攻擊和其他網(wǎng)絡(luò)威脅的影響,通過提供強大的防火墻和安全措施。
  • 負載均衡:智能地將用戶流量分發(fā)到多個服務(wù)器,確保您的網(wǎng)站或應用程序在高流量下仍然保持快速和可靠。

2023 年 1 月,據(jù) Netcraft 對上百萬個站點的調(diào)查數(shù)據(jù)顯示,在 Cloudflare 從第 3 位躍升至第 1 位,即在一個月內(nèi)超過了 Apache 和  Nginx ,成為了最受歡迎 Web 服務(wù)器。TBN28資訊網(wǎng)——每日最新資訊28at.com

Pingora 是什么?

Pingora 作為一款功能強大的代理工具,不僅提供了構(gòu)建HTTP/1、HTTP/2、TLS或TCP/UDP服務(wù)的庫和API,還支持HTTP/1和HTTP/2的端到端代理、gRPC和Websocket代理。盡管HTTP/3的支持尚在規(guī)劃中,但Pingora已經(jīng)展現(xiàn)出其前瞻性和可擴展性。為了滿足不同用戶的需求,Pingora配備了高度可定制的負載均衡和故障轉(zhuǎn)移策略。在安全方面,Pingora支持廣泛使用的OpenSSL和BoringSSL庫,確保服務(wù)符合FIPS標準,并采用了后量子加密技術(shù),為用戶提供堅實的安全保障。TBN28資訊網(wǎng)——每日最新資訊28at.com

Pingora的另一個亮點是其靈活的過濾器和回調(diào)函數(shù)機制。這使得用戶能夠根據(jù)自己的需求,完全自定義服務(wù)的請求處理、轉(zhuǎn)換和轉(zhuǎn)發(fā)過程。這一特性對于熟悉 OpenResty 和 Nginx 的用戶來說將尤為親切,因為Pingora的API設(shè)計直觀且易于與OpenResty的 "*_by_lua" 回調(diào)函數(shù)對接。TBN28資訊網(wǎng)——每日最新資訊28at.com

在操作層面,Pingora提供了零停機時間的優(yōu)雅重啟功能,確保在升級過程中不會丟失任何傳入請求。此外,Pingora還易于與Syslog、Prometheus、Sentry、OpenTelemetry等關(guān)鍵可觀察性工具集成,幫助用戶實時監(jiān)控和優(yōu)化服務(wù)的性能。TBN28資訊網(wǎng)——每日最新資訊28at.com

那什么情況下應該使用 Pingora 呢?TBN28資訊網(wǎng)——每日最新資訊28at.com

  • 安全至上:Pingora 是 C/C++ 服務(wù)的安全內(nèi)存替代方案。通過 Pingora,您可以減少編碼錯誤,降低內(nèi)存安全問題的風險。這意味著將能夠更專注于新功能的開發(fā),而不必擔心潛在的安全隱患。
  • 性能敏感:Pingora 以其快速和高效的性能而著稱。得益于其多線程架構(gòu),Pingora 顯著減少了 CPU 和內(nèi)存資源的消耗。對于需要優(yōu)化成本和速度的系統(tǒng),Pingora 無疑是理想的選擇。
  • 高度定制需求:Pingora 提供的 API 高度可編程,適用于構(gòu)建定制和高級的網(wǎng)關(guān)或負載均衡器。無論需求有多么復雜,Pingora 都能提供強大而簡單的實現(xiàn)方式。

有了 Nginx 為什么還需要 Pingora?

Pingora 是 Cloudflare 使用 Rust 構(gòu)建的新 HTTP 代理,不僅提升了性能,還為Cloudflare客戶帶來了眾多新功能。令人矚目的是,它在實現(xiàn)這些的同時,僅需以往代理基礎(chǔ)架構(gòu)三分之一的CPU和內(nèi)存資源。TBN28資訊網(wǎng)——每日最新資訊28at.com

隨著Cloudflare業(yè)務(wù)規(guī)模的飛速擴張,其需求已經(jīng)超越了 Nginx 的處理能力。盡管 Nginx 多年來表現(xiàn)出色,但隨著時間推移,其規(guī)模上的局限性逐漸凸顯。包括:TBN28資訊網(wǎng)——每日最新資訊28at.com

  • Nginx  架構(gòu)影響性能:Nginx 的 worker(進程)架構(gòu)導致每個請求只能由單個worker處理,造成了CPU內(nèi)核之間的負載不平衡,從而降低了整體性能。此外,這種架構(gòu)還可能導致執(zhí)行CPU密集型或阻塞I/O任務(wù)的請求減緩其他請求的速度。另外,cloudflare 的用例依賴于高效的連接重用,以減少TCP和TLS握手的時間,加快請求的TTFB。然而,  Nginx  的連接池與單個worker相對應,限制了連接的重用率。當增加更多的worker以進行擴展時,連接會分散在更多的孤立池中,導致連接重用率下降,TTFB增加,并增加了資源消耗。
  • 有些類型的功能難以添加: Nginx 作為 Web 服務(wù)器、負載均衡器或簡單的網(wǎng)關(guān)表現(xiàn)出色,但對于更高級、定制化的功能需求,它存在一些局限性。在嘗試圍繞  Nginx  構(gòu)建所需功能時,面臨著與上游代碼庫保持一致的挑戰(zhàn),這并不容易實現(xiàn)。除此之外, Nginx 社區(qū)的活躍度有限,開發(fā)工作往往缺乏開源社區(qū)的支持和協(xié)作。這限制了我們從社區(qū)獲取幫助和解決方案的能力。

為了追求更高的性能,并滿足復雜環(huán)境中日益增長的功能需求,Cloudflare決定構(gòu)建全新的解決方案——Pingora。TBN28資訊網(wǎng)——每日最新資訊28at.com

TBN28資訊網(wǎng)——每日最新資訊28at.com

性能提升

經(jīng)過對 Pingora 的實際應用與性能數(shù)據(jù)的收集,觀察到了顯著的性能提升。Pingora在處理HTTP請求時,特別是針對緩存未命中的情況,表現(xiàn)出了出色的性能。Pingora架構(gòu)的創(chuàng)新之處在于其跨線程共享連接的能力,這顯著提高了連接的重用率,并大幅減少了在 TCP 和 TLS 握手上所花費的時間。TBN28資訊網(wǎng)——每日最新資訊28at.com

根據(jù)數(shù)據(jù),Pingora 將 TTFB(首字節(jié)時間)的中位數(shù)減少了 5 毫秒,而第 95 個百分位數(shù)更是減少了80毫秒。這并非因為代碼運行速度更快,而是因為新架構(gòu)更有效地管理了連接,從而減少了握手時間。TBN28資訊網(wǎng)——每日最新資訊28at.com

此外,與舊服務(wù)相比,Pingora每秒的新連接數(shù)減少了三分之二。對于一個關(guān)鍵客戶,連接重用率從87.1%大幅提升至99.92%,這意味著新連接的數(shù)量減少了160倍。換算成實際的時間節(jié)省,通過切換到Pingora,每天為客戶和用戶節(jié)省了相當于434年的握手時間。TBN28資訊網(wǎng)——每日最新資訊28at.com

更安全

在大規(guī)模分布式環(huán)境中,快速且安全地發(fā)布新功能是一項艱巨的任務(wù),尤其是在每秒處理數(shù)百萬個請求的情況下。在這樣的環(huán)境下,傳統(tǒng)的模糊測試和靜態(tài)分析只能提供有限的保障。TBN28資訊網(wǎng)——每日最新資訊28at.com

為了增強系統(tǒng)的穩(wěn)定性和可靠性,Pingora 選擇了使用 Rust 語言,其內(nèi)存安全語義確保了代碼免受未定義行為的影響,從而增強了對服務(wù)正確運行的信心。這種保障能夠?qū)⒏嗑性诜?wù)更改與其他服務(wù)或客戶來源的交互上,而不是擔憂內(nèi)存安全或難以診斷的崩潰問題。TBN28資訊網(wǎng)——每日最新資訊28at.com

自 Pingora 使用以來,已經(jīng)處理了數(shù)百萬億個請求,而且至今尚未因為服務(wù)代碼而導致崩潰。這證明了Rust在內(nèi)存安全方面的優(yōu)勢以及 Cloudflare 團隊在開發(fā)和維護中的努力。TBN28資訊網(wǎng)——每日最新資訊28at.com

更高效

在生產(chǎn)環(huán)境中,與舊服務(wù)相比,Pingora在相同的流量負載下實現(xiàn)了顯著的資源消耗降低。具體來說,CPU消耗減少了約70%,而內(nèi)存消耗減少了約67%。這一顯著的節(jié)省主要源于幾個關(guān)鍵因素。TBN28資訊網(wǎng)——每日最新資訊28at.com

首先,Pingora使用Rust編寫的代碼相較于之前使用Lua的代碼,在運行效率上有顯著的提升。Rust作為一種編譯型語言,其性能通常優(yōu)于解釋型語言如Lua。TBN28資訊網(wǎng)——每日最新資訊28at.com

其次,Pingora的架構(gòu)設(shè)計使得數(shù)據(jù)訪問更加高效。在舊的 NGINX/OpenResty 架構(gòu)中,Lua代碼訪問HTTP頭時涉及多個步驟,包括從 Nginx C結(jié)構(gòu)中讀取、分配Lua字符串、復制到Lua字符串中,以及后續(xù)的垃圾回收。而在Pingora中,這種訪問變得直接而高效,減少了不必要的中間步驟。TBN28資訊網(wǎng)——每日最新資訊28at.com

此外,Pingora采用的多線程模型使得跨請求共享數(shù)據(jù)更加高效。雖然NGINX也提供共享內(nèi)存,但由于實施限制,每次訪問都需要使用互斥鎖,并且只能存儲字符串和數(shù)字。相比之下,Pingora允許通過原子引用計數(shù)器直接訪問大多數(shù)共享項目,從而提高了數(shù)據(jù)共享的效率。TBN28資訊網(wǎng)——每日最新資訊28at.com

最后,Pingora顯著減少了新連接的數(shù)量,這也是CPU節(jié)省的一個重要方面。與通過已建立的連接發(fā)送和接收數(shù)據(jù)相比,TLS握手過程更加耗時和資源密集。通過提高連接重用率,Pingora能夠減少新連接的需求,從而進一步降低資源消耗。TBN28資訊網(wǎng)——每日最新資訊28at.com

相關(guān)鏈接

Github:https://github.com/cloudflare/pingora。TBN28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-75290-0.htmlPingora正式開源:超強的Nginx替代品,每秒可處理4000萬請求!

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 索尼吉田憲一郎:魏哲家 2021 年一句話,開啟了臺積電日本廠項目

下一篇: Simhash在內(nèi)容去重中的應用,你學會了嗎?

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 始兴县| 凌海市| 霍林郭勒市| 桓仁| 靖江市| 恩施市| 宝清县| 六枝特区| 通城县| 房产| 肥西县| 花莲市| 夏邑县| 和田市| 大庆市| 三门峡市| 西和县| 榕江县| 新竹县| 明光市| 鄢陵县| 玉溪市| 于田县| 托里县| 咸阳市| 江口县| 尉氏县| 武宁县| 金华市| 囊谦县| 申扎县| 丹江口市| 德清县| 南岸区| 黄山市| 潢川县| 琼中| 正定县| 上蔡县| 宜良县| 都兰县|