Dubbo 框架

一、簡介

dubbo是什麼?

dubbo是一個分佈式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。

簡單的說,dubbo就是個服務框架,如果沒有分佈式的需求,其實是不需要用的,只有在分佈式的時候纔有dubbo這樣的分佈式服務框架的需求,並且本質上是個服務調用,說白了就是個遠程服務調用的分佈式框架。

在實際用途中dubbo就是服務提供者服務消費者以及註冊中心三者的使用。

 

二、dubbo框架協議

1、dubbo使用的協議

RPC協議(遠程調用協議),更多見博客:https://blog.csdn.net/qq_41055045/article/details/89599237

在dubbo框架使用 <dubbo:protocol name="dubbo" port="20880"/>

2、協議特點

dubbo協議採用單一長連接和異步通訊,適合於小數據量大併發的服務調用,以及服務消費者機器數遠大於服務提供者機器數的情況。

3、網絡通信

dubbo協議底層網絡通信默認使用的是netty,性能非常優秀,推薦使用

附加知識:

dubbo協議不適合的地方:Dubbo協議不適合傳送大數據量的服務,比如傳文件,傳視頻等,除非請求量很低

長連接------服務器和服務器,建立管道,一直打開着,適合小數據傳輸,就不需要等待

短連接------用戶和服務器,建立管道,每次都要建立新的連接

 

三、dubbo框架常用標籤

公用標籤、服務提供者標籤、服務消費者標籤(下面的是主要的標籤)
1、公用標籤:在服務、消費者都要使用

配置應用信息:<dubbo:application name="服務的名稱"/>(必用)服務的名稱給dubbo框架內部使用,用來識別是消費者或者是提供者

配置註冊中心:<dubbo:registry address="ip:port" protocol="協議" />

2、服務提供者標籤

配置訪問服務提供者的協議信息:<dubbo:protocol name="dubbo" port="20880"/>

配置暴露的服務:<dubbo:service interface="服務接口名" ref="服務實現對象 bean" />(必用)

3、服務消費者標籤

配置服務消費者引用遠程服務:<dubbo:reference id="服務引用bean的id" interface="服務接口名"/> (必用)

dubbo缺省會在啓動時檢查依賴的服務是否可用,不可用時會拋出異常,防止spring初始化完成,以便上線時,能及早發現問題,默認check="true"。通過check="false"關閉檢查,比如,測試時,有些服務不關心,或者出現循環依賴,必須有一方先啓動。

4、其它配置項,不是標籤

關閉檢查check:關閉某個服務啓動時檢查:<dubbo:registry check="false" />  關閉註冊中心啓動時檢查:<dubbo:reference interface="" check="false" />

請求重試次數retries:遠程服務調用次數,不包括第一次調用,默認是2次。加上第一次共3次:<dubbo:reference retries="5" />

 

四、dubbo框架註冊中心

註冊中心zookeeper

可以動態管理dubbo服務,有心跳機制,每幾秒會向服務發送信息,當服務宕機了,註冊中心會把記錄刪除,添加新的服務地址,會自動把新的服務地址等給消費者,自動管理

自動管理過程:

1、提供服務者會交給註冊中心管理(dubbo服務向註冊中心提供自己的服務地址)

  • 服務提供者把dubbo服務1(名稱)交給註冊中心登記(ip:port 接口名 記錄一行信息)
  • 服務2....
  • 服務3....

2、消費者從註冊中心訂閱服務(app向註冊中心獲取可用的dubbo服務的地址)

  • 註冊中心把消費者訂閱的服務1(名稱)的ip:port等發送給消費者
  • 服務2....
  • 服務3....

dubbo框架使用註冊中心:

        <!-- 聲明註冊中心 -->
        <dubbo:registry address="zookeeper://localhost:2181"/>

使用了zookeeper,實現由zookeeper自動管理服務,提高項目效率

windows安裝zookeeper的過程,單機模式,見博客:https://blog.csdn.net/qq_41055045/article/details/82945597

 

五、dubbo框架負載均衡

負載均衡是以集羣爲前提的。其意思是將負載工作任務進行平衡、分攤到多個操作單元上進行執行

負載均衡方式

  1. 隨機數:從全部服務器中隨機選中一個服務器進行工作,服務器多的時候用隨機數好(默認)
  2. 輪循:各個服務器輪着工作,有序,服務器性能差不多的時候用輪循
  3. 最少活躍數:服務器性能差異比較大的時候用
  4. 一致性hash:怕服務器宕機時使用,通過虛擬節點,如果有一服務器宕掉,則把虛擬節點重新分配。

 

六、dubbo項目

入門教程項目參考我的其它博客

  • 一分鐘入門一個dubbo不帶註冊中心的項目
  • 實現帶註冊中心的dubbo框架的項目
  • 企業級使用dubbo框架(標準)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章