跟我學習dubbo-簡介(1)

来源:http://www.cnblogs.com/jeesml/archive/2016/01/04/5100085.html
-Advertisement-
Play Games

Dubbo是一個分散式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這樣的分散式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的...


1. Dubbo是什麼?

Dubbo是一個分散式服務框架,致力於提供高性能和透明化的RPC遠程服務調用方案,以及SOA服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分散式的需求,其實是不需要用的,只有在分散式的時候,才有dubbo這樣的分散式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分散式框架(告別Web Service模式中的WSdl,以服務者與消費者的方式在dubbo上註冊)
其核心部分包含:
1. 遠程通訊: 提供對多種基於長連接的NIO框架抽象封裝,包括多種線程模型,序列化,以及“請求-響應”模式的信息交換方式。
2. 集群容錯: 提供基於介面方法的透明遠程過程調用,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群支持。
3. 自動發現: 基於註冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器。

 

2. Dubbo能做什麼?

1.透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。      
2.軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。
3. 服務自動註冊與發現,不再需要寫死服務提供方地址,註冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。

Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行載入。

 

3. dubbo的架構

dubbo架構圖如下所示:

 

 

 

節點角色說明:

       Provider: 暴露服務的服務提供方。

       Consumer: 調用遠程服務的服務消費方。

       Registry: 服務註冊與發現的註冊中心。

       Monitor: 統計服務的調用次調和調用時間的監控中心。

       Container: 服務運行容器。

這點我覺得非常好,角色分明,可以根據每個節點角色的狀態來確定該服務是否正常。

調用關係說明:

0 服務容器負責啟動,載入,運行服務提供者。

1. 服務提供者在啟動時,向註冊中心註冊自己提供的服務。

2. 服務消費者在啟動時,向註冊中心訂閱自己所需的服務。

3. 註冊中心返回服務提供者地址列表給消費者,如果有變更,註冊中心將基於長連接推送變更數據給消費者。

4. 服務消費者,從提供者地址列表中,基於軟負載均衡演算法,選一臺提供者進行調用,如果調用失敗,再選另一臺調用。

5. 服務消費者和提供者,在記憶體中累計調用次數和調用時間,定時每分鐘發送一次統計數據到監控中心。

dubbo的容錯性顯而易見,性能方面還沒有還得及測,我們系統某頁面需要掉5次介面,本來想建議做個緩存,但業務關係不能採納,還需要研究下dubbo的性能調優問題...

4. dubbo使用方法。

Dubbo採用全Spring配置方式,透明化接入應用,對應用沒有任何API侵入,只需用Spring載入Dubbo的配置即可,Dubbo基於Spring的Schema擴展進行載入。如果不想使用Spring配置,而希望通過API的方式進行調用(不推薦)

下麵我們一步一步的來剖解dubbo如何使用

 

請各位持續關註《跟我學習dubbo-ZooKeeper註冊中心安裝(2)》

由於第一次寫關於dubbo的博客,還希望大家加入dubbo學習交流群(446855438),一起學習。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 題目:Given a binary tree, return the inorder traversal of its nodes' values. For example:Given binary tree {1,#,2,3}, 1 \ 2 / 3return [1,3...
  • ...說實話,我沒太懂……import java.util.Collection;import java.util.HashMap;public class CoinChangeParams { @SuppressWarnings("unused") public static ...
  • https://msdn.microsoft.com/zh-cn/library/hyx1zcd3(v=vs.80).aspx EXPORTS 引入了一個由一個或多個 definitions(導出的函數或數據)組成的節。每個定義必須在單獨一行上。EXPORTS definitions 備註 EXPO...
  • 本人使用環境為windows+eclipse 1,首先當然要到官網下載python https://www.python.org/downloads/windows/ 安裝可以選上自動將路徑加入path,也可以之後手動添加 完了之後在dos里輸入python檢查一下是否成功 2,安裝eclipse插...
  • 原文 :chenchun的博客http://www.cnblogs.com/jobscn/archive/2011/11/08/2240725.html------------------------------隨著Web應用的商業邏輯包含逐漸複雜的公式分析計算、決策支持等,使客戶機越來越不堪重負,...
  • 序言隨著公司業務的發展,後臺業務就變的越來越多,然而伺服器的故障又像月經一樣,時不時的洶涌而至,讓我們防不勝防。那麼後臺的高可用,以及伺服器的處理能力就要做一個橫向擴展的方案,以使後臺業務持續的穩定可用,平復人心。由於我們的後臺業務,清一色都是.net應用程式,加上總監的一致推薦,我們的負載均衡其中...
  • Dubbo 管控台可以對註冊到 zookeeper 註冊中心的服務或服務消費者進行管理,但 管控台是否正常對 Dubbo 服務沒有影響,管控台也不需要高可用,因此可以單節點部署。 管理控制台主要包含:路由規則,動態配置,服務降級,訪問控制,權重調整,負載均衡等管理功能
  • 1、建議使用dubbo-2.3.3以上版本的使用zookeeper註冊中心客戶端 2、Zookeeper是Apache Hadoop的子項目,強度相對較好,建議生產環境使用該註冊中心。 3、Dubbo未對Zookeeper伺服器端做任何侵入修改,只需安裝原生的Zookeeper伺服器即可, 所有...
一周排行
    -Advertisement-
    Play Games
  • .Net8.0 Blazor Hybird 桌面端 (WPF/Winform) 實測可以完整運行在 win7sp1/win10/win11. 如果用其他工具打包,還可以運行在mac/linux下, 傳送門BlazorHybrid 發佈為無依賴包方式 安裝 WebView2Runtime 1.57 M ...
  • 目錄前言PostgreSql安裝測試額外Nuget安裝Person.cs模擬運行Navicate連postgresql解決方案Garnet為什麼要選擇Garnet而不是RedisRedis不再開源Windows版的Redis是由微軟維護的Windows Redis版本老舊,後續可能不再更新Garne ...
  • C#TMS系統代碼-聯表報表學習 領導被裁了之後很快就有人上任了,幾乎是無縫銜接,很難讓我不想到這早就決定好了。我的職責沒有任何變化。感受下來這個系統封裝程度很高,我只要會調用方法就行。這個系統交付之後不會有太多問題,更多應該是做小需求,有大的開發任務應該也是第二期的事,嗯?怎麼感覺我變成運維了?而 ...
  • 我在隨筆《EAV模型(實體-屬性-值)的設計和低代碼的處理方案(1)》中介紹了一些基本的EAV模型設計知識和基於Winform場景下低代碼(或者說無代碼)的一些實現思路,在本篇隨筆中,我們來分析一下這種針對通用業務,且只需定義就能構建業務模塊存儲和界面的解決方案,其中的數據查詢處理的操作。 ...
  • 對某個遠程伺服器啟用和設置NTP服務(Windows系統) 打開註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpServer 將 Enabled 的值設置為 1,這將啟用NTP伺服器功 ...
  • title: Django信號與擴展:深入理解與實踐 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 後端開發 tags: Django 信號 松耦合 觀察者 擴展 安全 性能 第一部分:Django信號基礎 Djan ...
  • 使用xadmin2遇到的問題&解決 環境配置: 使用的模塊版本: 關聯的包 Django 3.2.15 mysqlclient 2.2.4 xadmin 2.0.1 django-crispy-forms >= 1.6.0 django-import-export >= 0.5.1 django-r ...
  • 今天我打算整點兒不一樣的內容,通過之前學習的TransformerMap和LazyMap鏈,想搞點不一樣的,所以我關註了另外一條鏈DefaultedMap鏈,主要調用鏈為: 調用鏈詳細描述: ObjectInputStream.readObject() DefaultedMap.readObject ...
  • 後端應用級開發者該如何擁抱 AI GC?就是在這樣的一個大的浪潮下,我們的傳統的應用級開發者。我們該如何選擇職業或者是如何去快速轉型,跟上這樣的一個行業的一個浪潮? 0 AI金字塔模型 越往上它的整個難度就是職業機會也好,或者說是整個的這個運作也好,它的難度會越大,然後越往下機會就會越多,所以這是一 ...
  • @Autowired是Spring框架提供的註解,@Resource是Java EE 5規範提供的註解。 @Autowired預設按照類型自動裝配,而@Resource預設按照名稱自動裝配。 @Autowired支持@Qualifier註解來指定裝配哪一個具有相同類型的bean,而@Resourc... ...