Apache Dubbo 星數已突破 40,000,團隊自豪地宣布 Dubbo 3.3 正式發布! Dubbo作為領先的開源微服務框架,始終致力於為開發者提供高效能、可擴展、靈活的分散式服務解決方案。 Dubbo 3.3的發布,Triple X升級,打破了以往的限制,實現了對南北向、東西向流量的全面支持,增強了與雲原生架構的兼容性。
Apache Dubbo 是一個高效能、輕量級的微服務框架,最初是用 Java 開發的。此後,它已擴展到支援多種語言,例如 Go、Rust 和 Python,使其成為建立跨語言、跨平台分散式系統的理想選擇。 Dubbo 提供了豐富的服務治理功能,包括服務註冊與發現、負載平衡、容錯、呼叫鏈追蹤等,幫助開發者建立高效、靈活的微服務架構。
隨著Dubbo的發展,通訊效能、服務治理、跨語言相容性等方面都得到了顯著提升,成為支援現代微服務架構的強大工具。
在早期應用中,Dubbo 在資料中心服務互通方面表現出了優異的效能。然而,隨著技術的發展和應用場景的擴大,原有的架構開始出現瓶頸。這些限制在跨地域、跨雲環境中尤其明顯,Web框架和RPC框架之間的頻繁切換導致開發複雜度增加,系統效能下降。
傳統建築的痛點:
僅限於資料中心應用:在跨地域或跨雲應用中,Dubbo 傳統架構缺乏對廣域環境的原生支持,迫使開發者在多種協定和框架之間切換,複雜性不斷增加。
南北向和東西向流量的挑戰:像Dubbo這樣的傳統RPC框架通常更關注服務到服務(東西向)流量的最佳化。然而,對高效南北通訊(客戶端到伺服器)的需求不斷增加,帶來了新的挑戰。
雲端原生與跨語言需求:隨著雲端原生技術的發展,系統需要更好地支援HTTP協定和跨語言通信,而這是傳統Dubbo無法做到的最佳化。
Triple X 的轉換與突破:Triple X升級直接解決了這些痛點。它延續了Dubbo的高效能通訊能力,同時實現了gRPC協定的全面相容,支援HTTP/1、HTTP/2、HTTP/3協定。這為跨雲端、跨地域的應用場景提供了更大的靈活性和效率。
全面的流量支援:Triple X 支援南北向(客戶端到伺服器)和東西向(服務到服務)流量。這種無縫支援確保了靈活的轉換,提高了通訊鏈路的整體效率。
符合gRPC協定標準:Triple X遵守gRPC協定標準,允許透過Protobuf進行通訊。這樣可以實現與gRPC服務的無縫交互,擴展了Dubbo的跨語言、跨平台通訊能力。
基於HTTP 協定構建,原生雲原生支援:Triple X 基於HTTP/1、HTTP/2 和HTTP/3 構建,優化網路效能並與雲端原生整合基礎設施,包括對各種網關和服務網格的支援。
高效能最佳化:Triple X提供極致的效能增強,特別是在高並發和弱網路環境下,顯著提高系統吞吐量和回應速度。
平滑遷移和框架相容性:Triple X 允許開發者在不修改程式碼的情況下遷移現有的Spring Web 項目,提供到Triple X 的無縫切換,同時保留對Spring MVC 等框架的支援。
高擴充性:憑藉 20 多個新的 SPI 擴充點,Triple X 可以自訂核心行為,包括路由、參數解析、序列化和異常處理。這增強了靈活性,允許開發人員調整框架以滿足特定的業務需求。
Triple X為微服務架構提供了靈活的整合方式,適應不同的系統需求。根據系統架構的不同,Triple X提供了集中式和去中心化兩種整合方式,適合各種應用場景。
採用集中整合的方式,外部流量透過統一的服務閘道進入Dubbo後端服務。網關處理 HTTP 流量解析、轉送並將請求路由到適當的後端服務。這種方式適合對統一流量管理、流量控制、權限驗證要求較高的系統,可以對傳入流量進行集中控制。
使用場景:對於需要集中管理外部請求的系統,例如流量監控、限速等,Triple X 可以高效處理HTTP/1、HTTP/2、HTTP/3 流量通過服務網關轉送至Dubbo服務。
優點:集中控制,易於管理,適合需要統一流量治理的大型系統。
採用去中心化整合方式,外部客戶端可以直接透過HTTP存取Dubbo後端服務,無需依賴中間網關。這種方法適合具有高效能和低延遲要求的系統,因為它不需要網關,從而減少了通訊開銷,從而提高了系統回應速度。去掉網關節點也避免了網關故障導致的系統不可用,簡化了部署架構,增強了穩定性。
使用場景:對於需要透過HTTP直接存取Dubbo服務以減少中間步驟、提高反應速度的系統,Triple X允許無需網關即可暴露REST API。
優點:消除中間步驟,提高效能,簡化架構,適合低延遲應用。
在複雜的微服務架構中,處理南北(客戶端到伺服器)和東西(服務到服務)流量可能具有挑戰性。 Triple X 使用統一的通訊協定來支援兩者,無需在 Web 和 RPC 框架之間切換,簡化了開發流程,提高了效能和可維護性。
開發者可以利用 Triple X 來有效支援用戶發起的請求和服務間通信,所有這些都透過 Triple X 順利傳輸。
package org.apache.test; @DubboService public class UserServiceImpl implements UserService { // Handles east-west requests } // Triple X also supports north-south traffic @DubboService public class OrderService { @GetMapping("/order/{orderId}") public Order getOrderById(@PathVariable("orderId") String orderId) {} }
跨語言服務之間的通訊通常是分散式系統中的一個挑戰,而 gRPC 是一種流行的解決方案。 Triple X 遵循gRPC 協定標準,透過 Protobuf 實現與 gRPC 的無縫交互,增強了跨語言、跨平台的通訊能力。
使用 Triple X 的服務可以直接與基於 gRPC 的服務交互,無需額外的適配,簡化了開發。
在雲端原生環境中,服務需要與 API 網關、服務網格等各種網路設施有效集成,同時支援不同的 HTTP 協定以增強效能。
Triple X 支援HTTP/1、HTTP/2 和HTTP/3,讓開發人員可以利用這些協定的優勢,例如長連接、多重化和標頭壓縮,而無需額外配置。 HTTP/3也解決了隊頭阻塞問題,其基於UDP的通訊在弱網路環境下保持高品質和服務效能。
Triple X 允許重複使用 Spring Boot 現有的 Servlet 連接埠來處理 HTTP 流量,因此無需單獨的 Netty 監聽連接埠。這樣可以簡化網路架構,降低維護成本,提高安全性,讓流量更輕鬆地通過企業防火牆和網關。
在高並發場景下,傳統通訊協定往往會出現瓶頸,影響系統回應時間和吞吐量。
🎜>高效路由:使用Radix Tree進行路由匹配,優化key hash演算法並支援動態更新,減少記憶體佔用,提高匹配效率。
最佳化記憶體使用:將零複製與物件重複使用結合,減少資料複製和物件建立開銷,從而降低垃圾收集壓力並提高吞吐量。
HTTP/3 支援:利用基於 QUIC 的 HTTP/3 協議,透過減少延遲和增強連接可靠性來提高弱網路條件下的效能。
多重協定壓測與最佳化:Dubbo團隊對多個協定進行了大量的壓測,並進行了多輪最佳化,保證了不同場景下的最佳效能。
效能測試表明,與傳統的Spring Boot REST 服務相比,使用Triple X 的簡單REST 服務在高壓下可以實現五倍的QPS,響應時間減少至三分之一,內存分配降低50%,大幅提升系統效能和資源效率。
Triple X 也支援將現有 Spring Web 專案移轉到微服務架構,而無需進行重大程式碼變更。
Triple X 提供了零侵入的遷移解決方案,允許開發人員將現有 Spring Web 專案遷移到 Triple X,而無需更改現有程式碼,同時仍支援 Spring MVC 等框架。
package org.apache.test; @DubboService public class UserServiceImpl implements UserService { // Handles east-west requests } // Triple X also supports north-south traffic @DubboService public class OrderService { @GetMapping("/order/{orderId}") public Order getOrderById(@PathVariable("orderId") String orderId) {} }
Dubbo 3.3 引入了對原生鏡像 AOT(提前編譯) 的支持,允許開發者將 Dubbo 應用程式編譯為原生二進位。這顯著減少了啟動時間和記憶體使用量,使其成為無伺服器場景的理想選擇。
Dubbo 3.3 新增對 Project Loom 的支持,透過虛擬執行緒優化高並發場景下的執行緒管理,簡化非同步程式設計模型,提升並發處理能力。
Dubbo 3.3也引入了新的路由規則,支援更靈活的流量控制和服務治理,增強大規模微服務部署的適應性。
Apache Dubbo 3.3的發布標誌著微服務通訊技術的一個重要里程碑。憑藉Triple X,Dubbo 現在提供了對南北向和東西向流量的全面支援、與gRPC 的無縫整合、透過HTTP 協定的雲端原生支援以及顯著的效能優化,為開發者提供了強大的用於建構現代分散式系統的靈活工具。
無論您需要提升服務間通訊效率、實現跨語言相容,或是最佳化雲端原生通訊效能,Dubbo 3.3都是應對現代分散式系統挑戰的理想選擇。今天升級到Dubbo 3.3,體驗Triple X帶來的變革,開啟微服務通訊新時代!
以上是Apache Dubbo 發布:Triple X 引領微服務通訊新時代的詳細內容。更多資訊請關注PHP中文網其他相關文章!