① Dubbo 源碼淺析(一)—RPC 框架與 Dubbo | 京東雲技術團隊
RPC,遠程過程調用,是一種在本地調用遠程過程的技術,與之相對的是本地服務調用,即在程序內部進行的方法調用。RPC框架使得我們能像調用本地方法一樣方便地調用遠程服務,無需關心底層實現細節。它可以被認為是一種概念,實現方式可以是多種協議,如HTTP或自定義的TCP協議,例如Dubbo。
HTTP與RPC的關系並非直接包含,因為HTTP的調用方式並不直接調用遠程方法,而是通過HTTP請求進行數據傳輸。而RPC框架如Dubbo,提供了一種本地調用遠程方法的能力。因此,RPC並不局限於HTTP,還可以基於TCP協議實現。
思考RPC與HTTP的關系時,應當從定義出發,理解RPC實際上指的是遠程過程調用,其中「Procere」更多指的是程序或過程,而非方法。在理解概念時,不應忽略這一基本定義。RPC框架,如Dubbo,是為了簡化遠程服務調用的過程,提供了一套調用介面,使得開發者無需關注底層通信細節。
總體而言,RPC框架是幫助開發者在本地調用遠程服務時,如同調用本地服務一樣便捷。Dubbo是阿里巴巴開源的RPC框架,通過配置和簡單的調用,即可實現遠程服務的調用。Dubbo架構主要包含服務提供者和消費者,兩者通過注冊中心進行服務的注冊與訂閱。服務提供者啟動後向注冊中心注冊服務,消費者啟動後從注冊中心訂閱所需服務。注冊中心將服務信息推送給消費者,實現服務的調用。服務提供者與消費者會記錄調用次數與時間,並定時發送統計數據至監控中心。
相比之下,Spring Cloud作為另一大微服務框架,與Dubbo在組件配置和功能上有所不同。Spring Cloud提供了更完善的配置功能和更強的特性,更像一台品牌機,易於上手和使用。而Dubbo則更像組裝機,需要用戶自行選擇配置,提供核心計算能力,但需要用戶自行完成其他組件的裝配和調試。對於新手來說,Spring Cloud更友好,而對於熟悉架構的開發者,Dubbo的靈活性和自定義性更受歡迎。