騰訊宣布開源 tRPC ,一款基于插件化理念設計的支持多語言、高性能的 RPC 開發框架。首批開源支持 Go/Cpp 兩種編程語言,預計接下來會開源更多編程語言的支持。
根據介紹嗎,tRPC 通過對底層通信的封裝提供RPC的調用方式,可以輕松的進行分布式應用開發;基于插件化的架構能支持多種業務通信協議,靈活對接各種微服務治理平臺,幫助業務快速構建所需的微服務體系。
架構設計
tRPC在架構設計上采用插件化設計思想,總體架構由 "框架" 和 "插件" 兩部分組成, 其中虛線框內為tRPC,中間的紅色實線框為框架,藍色實線框為插件部分。tRPC將核心功能抽象封裝成一個個獨立的插件,然后由框架來負責這些獨立插件的串聯和拼裝,從而實現框架所要支持的功能特性,通過這種設計使tRPC具備很強的開放性和可擴展性。此外框架還設計了admin管理接口,方便用戶或者運營平臺可以通過調用admin接口對服務進行管理。
主要特點
- 跨語言:基于Protocol Buffers來實現跨語言的服務通信。
- 多通信協議:支持多種通信協議,方便與不同框架進行互通(比如gRPC)。
- 支持流式RPC:更好地適用于大文件上傳/下載、消息Push、AI類語音識別/視頻理解等多種應用場景。
- 豐富插件生態:提供大量對接業界微服務組件的插件(比如Consul/Promethues/Opentelemetry等),方便用戶構建適合自己的服務治理體系。
- 可擴展:基于框架插件化的設計,用戶可以進行二次開發來擴展框架能力,比如:RPC請求參數校驗、鑒權、請求錄制等。
- 流控和過載保護:提供多種應用場景下的流量控制和過載保護插件,防止服務因為訪問突增造成過載而不可用。
項目規劃
- 開源更多編程語言:Java、Python、Node
- 豐富生態,開源更多云原生相關的插件和組建