Dubbo簡介

Dubbo簡介

Apache Dubbo |ˈdʌbəʊ| 是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動註冊和發現。

Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的 RPC 實現服務的輸出和輸入功能,可以和Spring框架無縫集成。Dubbo框架,是基於容器運行的.。容器是Spring。

官方網站 : http://dubbo.apache.org/

阿里巴巴已經將dubbo框架捐獻給了Apache軟件基金會

Dubbo框架結構

 

角色

registry

註冊中心. 是用於發佈和訂閱服務的一個平臺.用於替代SOA結構體系框架中的ESB服務總線的。

發佈

開發服務端代碼完畢後, 將服務信息發佈出去. 實現一個服務的公開.

訂閱

客戶端程序,從註冊中心下載服務內容 這個過程是訂閱.

訂閱服務的時候, 會將發佈的服務所有信息,一次性下載到客戶端.

客戶端也可以自定義, 修改部分服務配置信息. 如: 超時的時長, 調用的重試次數等.

consumer

服務的消費者, 就是服務的客戶端.

消費者必須使用Dubbo技術開發部分代碼. 基本上都是配置文件定義.

provider

服務的提供者, 就是服務端.

服務端必須使用Dubbo技術開發部分代碼. 以配置文件爲主.

container

容器. Dubbo技術的服務端(Provider), 在啓動執行的時候, 必須依賴容器才能正常啓動.

默認依賴的就是spring容器. 且Dubbo技術不能脫離spring框架.

在2.5.3版本的dubbo中, 默認依賴的是spring2.5版本技術. 可以選用spring4.5以下版本.

在2.5.7版本的dubbo中, 默認依賴的是spring4.3.10版本技術. 可以選擇任意的spring版本.

monitor dubbo admin

監控中心. 是Dubbo提供的一個jar工程.

主要功能是監控服務端(Provider)和消費端(Consumer)的使用數據的. 如: 服務端是什麼,有多少接口,多少方法, 調用次數, 壓力信息等. 客戶端有多少, 調用過哪些服務端, 調用了多少次等.

執行流程

  • start: 啓動Spring容器時,自動啓動Dubbo的Provider
  • register: Dubbo的Provider在啓動後自動會去註冊中心註冊內容.註冊的內容包括:
    • Provider的 IP
    • Provider 的端口.
    • Provider 對外提供的接口列表.哪些方法.哪些接口類
    • Dubbo 的版本.
    • 訪問Provider的協議.
  • subscribe: 訂閱.當Consumer啓動時,自動去Registry獲取到所已註冊的服務的信息.
  • notify: 通知.當Provider的信息發生變化時, 自動由Registry向Consumer推送通知.
  • invoke: 調用. Consumer 調用Provider中方法
    • 同步請求.消耗一定性能.但是必須是同步請求,因爲需要接收調用方法後的結果.
  • count:次數. 每隔2分鐘,provoider和consumer自動向Monitor發送訪問次數.Monitor進行統計.

協議

Dubbo協議(官方推薦協議)

優點:

採用NIO複用單一長連接,並使用線程池併發處理請求,減少握手和加大併發效率,性能較好(推薦使用)

缺點:

大文件上傳時,可能出現問題(不使用Dubbo文件上傳)

RMI(Remote Method Invocation)協議

優點:

JDK自帶的能力。可與原生RMI互操作,基於TCP協議

缺點:

偶爾連接失敗.

Hessian協議

優點:

可與原生Hessian互操作,基於HTTP協議

缺點:

需hessian.jar支持,http短連接的開銷大

註冊中心

Zookeeper(官方推薦)

優點:

支持分佈式.很多周邊產品.

缺點:

受限於Zookeeper軟件的穩定性.Zookeeper專門分佈式輔助軟件,穩定較優

Multicast

優點:

去中心化,不需要單獨安裝軟件.

缺點:

2.2.1 Provider和Consumer和Registry不能跨機房(路由)

Redis

優點:

支持集羣,性能高

缺點:

要求服務器時間同步.否則可能出現集羣失敗問題.

Simple

優點:

標準RPC服務.沒有兼容問題

缺點:

不支持集羣.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章