dubbo學習

一隻胡說八道的猴子發表於2021-02-10

基礎理論

1、什麼是分散式系統

分散式系統是若干計算機的集合,這些計算機對使用者而言就像單個相關係統 -- 《分散式系統原理與範型》

分散式系統是建立在網路之上的系統

2、架構發展演變

隨著網際網路發展,應用規模不斷增長,架構也隨著演變。從單一應用架構,垂直應用拆分架構,逐漸演變為分散式應用架構。

dubbo學習

3、RPC

RPC是指遠端過程呼叫,是一種程式間通訊方式。它允許呼叫另一個地址空間(通常指網路上的某臺機器)的過程或函式。使用方式與本地呼叫方法一致。

原理

dubbo學習
(1)client以本地呼叫方式(即介面方式)呼叫服務

(2)client代理接收到呼叫後,負責將介面、引數等序列化為二進位制

(3)通過socket將訊息發往服務端

(4)server代理將二進位制訊息反序列化

(5)server呼叫本地方法

(6)將執行結果返回給server代理

(7)代理將返回結果序列化

(8)通過socker將返回結果發往客戶端

(9)返回結果反序列化

(10)client得到最終結果

不同的RPC框架核心

  • 通訊(快速建立連線)
  • 序列化 (效率)

現有的業界RPC框架:dubbo、gRPC、Thrift、pigeon

4、dubbo

dubbo架構:

dubbo學習

dubbo特性:

  • 面向介面代理的高效能RPC呼叫

    • 提供高效能的基於代理的遠端呼叫能力,服務以介面為粒度,為開發者遮蔽遠端呼叫底層細節。
  • 智慧負載均衡

    • 內建多種負載均衡策略,智慧感知下游節點健康狀況,顯著減少呼叫延遲,提高系統吞吐量。
  • 服務自動註冊與發現

    • 支援多種註冊中心服務,服務例項上下線實時感知。
  • 高度可擴充套件能力

    • 遵循微核心+外掛的設計原則,所有核心能力如Protocol、Transport、Serialization被設計為擴充套件點,平等對待內建實現和第三方實現。
  • 執行期流量排程

    • 內建條件、指令碼等路由策略,通過配置不同的路由規則,輕鬆實現灰度釋出,同機房優先等功能。
  • 視覺化的服務治理與運維

    • 提供豐富服務治理、運維工具:隨時查詢服務後設資料、服務健康狀態及呼叫統計,實時下發路由策略、調整配置引數。

相關文章