dubbo 框架是用來處理分布式系統中,服務發現與註冊以及呼叫問題的,並且管理呼叫過程。
一,工作流程:
二、各個部分整體機制
1、提供者暴露服務的整體機制:
2.註冊中心
其主要作用如下:
dubbo 有四種註冊中心的實現,分別是 zookeeper,redis,****** 和 multicast。
zookeeper 是負責協調服務式應用的。通過樹形檔案儲存的 znode 在 /dubbo/service 目錄下面建立了四個目錄,分別是:
providers 目錄下面,存放服務提供者 url 和元資料。
consumers 目錄下面,存放消費者的 url 和元資料。
routers 目錄下面,存放消費者的路由策略。
configurators 目錄下面,存放多個用於服務提供者動態配置 url 元資料資訊。
客戶端第一次連線註冊中心的時候,會獲取全量的服務元資料,包括服務提供者和服務消費者以及路由和配置的資訊。
根據 zookeeper 客戶端的特性,會在對應 znode 的目錄上註冊乙個 watcher,同時讓客戶端和註冊中心保持 tcp 長連線。
如果服務的元資料資訊發生變化,客戶端會接受到變更通知,然後去註冊中心更新元資料資訊。變更時根據 znode 節點中版本變化進行。
3.服務消費者
服務消費者首先持有遠端服務例項生成的 invoker,然後把 invoker 轉換成使用者介面的動態**引用,服務引用的入口點在 referencebean
4.dubbo 集群容錯
分布式服務多以集群形式出現,在消費服務發起呼叫的時候,會涉及到 cluster,directory,router,loadbalance 幾個核心元件。
cluster生成 invoker 物件後就獲取可呼叫的服務列表,在 directory 獲取所有 invoker 列表之後,會呼叫路由介面(router)。其會根據使用者配置的不同策略對 invoker 列表進行過濾,只返回符合規則的 invoker。生成的 invoker服務有可能分布在不同的節點上面。所以,需要經過 loadbalance。
5.dubbo 遠端呼叫
服務消費者經過容錯,invoker 列表,路由和負載均衡以後,會對 invoker 進行過濾,之後通過 client 編碼,序列化發給服務提供者。
dubbo重試機制原理 Dubbo超時和重連機制
dubbo啟動時預設有重試機制和超時機制。超時機制的規則是如果在一定的時間內,provider沒有返回,則認為本次呼叫失敗,重試機制在出現呼叫失敗時,會再次呼叫。如果在配置的呼叫次數內都失敗,則認為此次請求異常,丟擲異常。如果出現超時,通常是業務處理太慢,可在服務提供方執行 jstack pid j...
Dubbo基本原理機制
分布式服務框架 高效能和透明化的rpc遠端服務呼叫方案 soa服務治理方案 apache mina 框架基於reactor模型通訊框架,基於tcp長連線 dubbo預設協議採用單一長連線和nio非同步通訊,適合於小資料量大併發的服務呼叫,以及服務消費者機器數遠大於服務提供者機器數的情況。分析源 基本...
Dubbo基本原理機制
分布式服務框架 高效能和透明化的rpc遠端服務呼叫方案 soa服務治理方案 apache mina 框架基於reactor模型通訊框架,基於tcp長連線dubbo預設協議採用單一長連線和nio非同步通訊,適合於小資料量大併發的服務呼叫,以及服務消費者機器數遠大於服務提供者機器數的情況分析源 基本原理...