1、什么是Dubbo
- Dubbo是一款高性能、輕量級的Java RPC框架,它提供了三大核心能力:面向介面的遠程方法呼叫,智能容錯和負載均衡,以及服務自動注冊和發現,簡單來說Dubbo是一個分布式服務框架,致力于提供高性能和透明化的RPC遠程服務呼叫方案,以及SOA服務治理方案;
核心部分包含: - 遠程通訊:提供對多種基于長連接的NIO框架抽象封裝,包括多種執行緒模型,序列化,以及“請求-回應”模式的資訊交換方式;
- 集群容錯:提供基于介面方法的透明遠程程序呼叫,包括多協議支持,以及軟負載均衡,失敗容錯,地址路由,動態配置等集群支持;
- 自動發現:基于注冊中心目錄服務,使服務消費方能動態的查找服務提供方,使地址透明,使服務提供方可以平滑增加或減少機器;
Dubbo能做什么: - 透明化的遠程方法呼叫,就像呼叫本地方法一樣呼叫遠程方法,只需簡單配置,沒有任何API侵入;
- 軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點;
- 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基于介面名查詢服務提供者的IP地址,并且能夠平滑添加或洗掉服務提供者;
2、什么是RPC,RPC原理是什么
- RPC-遠程程序呼叫,是一種通過網路從遠程計算機程式上請求服務,而不需要了解底層網路技術的協議,

3、為什么要用Dubbo
為什么要使用Dubbo
- 負載均衡–同一個服務部署在不同的機器時該呼叫哪一臺機器上的服務;
- 服務呼叫鏈路生成–解決服務之間互相是如何呼叫的;
- 服務訪問壓力以及時長統計、資源調度和治理–基于訪問壓力實時管理集群容量,提高集群利用率;
- 服務降級–某個服務掛掉之后呼叫備用服務
4、什么是分布式
- 分布式就是把整個系統拆分成不同的服務,然后將這些服務放在不同的服務器上,減輕單體服務的壓力,提高并發量和性能;
5、為什么要用分布式
- 每個團隊負責一個服務的開發,提升了開發效率,便于維護和擴展,提高整體系統的性能;
6、Dubbo架構圖解
1. 服務容器負責啟動,加載,運行服務提供者,
2. 服務提供者在啟動時,向注冊中心注冊自己提供的服務,
3. 服務消費者在啟動時,向注冊中心訂閱自己所需的服務,
4. 注冊中心回傳服務提供者地址串列給消費者,如果有變更,注冊中心將基于長連接推送變更資料給消費者,
5. 服務消費者,從提供者地址串列中,基于軟負載均衡演算法,選一臺提供者進行呼叫,如果呼叫失敗,再選另一
臺呼叫,
6. 服務消費者和提供者,在記憶體中累計呼叫次數和呼叫時間,定時每分鐘發送一次統計資料到監控中心,
7、zookeeper宕機與Dubbo直連的情況
- 在實際生產中,假如zookeeper注冊中心宕掉后,一段時間內服務消費方還是能夠呼叫提供方的服務的,實際上它使用的本地快取進行通訊;
Dubbo健壯性表現:
- 監控中心宕掉不影響使用,只是丟失部分采樣資料
- 資料庫宕掉后,注冊中心仍能通過快取提供服務串列查詢,但不能注冊新服務
- 注冊中心對等集群,任意一臺宕掉后,將自動切換到另一臺
- 注冊中心全部宕掉后,服務提供者和服務消費者仍能通過本地快取通訊
- 服務提供者無狀態,任意一臺宕掉后,不影響使用
- 服務提供者全部宕掉后,服務消費者應用將無法使用,并無限次重連等待服務提供者恢復
8、什么是負載均衡
- 比如我們的系統中的某個服務的訪問量特別大,我們將這個服務部署在了多臺服務器上,當客戶端發起請求的時候,多臺服務器都可以處理這個請求,那么,如何正確選擇處理該請求的服務器就很關鍵,假如,你就要一臺服務器來處理該服務的請求,那該服務部署在多臺服務器的意義就不復存在了,負載均衡就是為了避免單個服務器回應同一請求,容易造成服務器宕機、崩潰等問題,我們從負載均衡的這四個字就能明顯感受到它的意義
9、什么是ZooKeeper
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/259444.html
標籤:其他
上一篇:Redis分布式鎖的實作
