溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Dubbo基礎(chǔ)知識點有哪些

發(fā)布時間:2021-12-17 10:59:19 來源:億速云 閱讀:147 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Dubbo基礎(chǔ)知識點有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Dubbo基礎(chǔ)知識點有哪些”吧!

Dubbo是一個分布式服務(wù)框架,以及SOA處理方案。其功能主要包括:高性能NIO通訊以及協(xié)議集成,服務(wù)動態(tài)尋址與路由,轉(zhuǎn)負載均衡與容錯,依賴分析與降級。它有5個節(jié)點,分別是provider,Consumer,Registry,Monitor,container。其中  provider是服務(wù)提供者  consumer是服務(wù)消費者 Registry是服務(wù)進行注冊和被發(fā)現(xiàn)的注冊中心。Monitor是統(tǒng)計服務(wù)調(diào)用次數(shù)和調(diào)用時間的監(jiān)控中心,Container是服務(wù)運行容器。

consumer負責(zé)啟動  然后運行provider。provider在啟動時向注冊中心注冊自己提供的服務(wù),consumer在啟動時向注冊中心訂閱自己需要的服務(wù),此時Registry會基于長連接推送變更數(shù)據(jù)給consumer。consumer會基于轉(zhuǎn)負載均衡算法選一臺服務(wù)器進行調(diào)用,如果調(diào)用失敗,則再選一臺。provider和consumer在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次數(shù)據(jù)到monitor。

Dubbo有四個特點 即連通性 健壯性 伸縮性 以及向未來架構(gòu)的升級性。聯(lián)通性說明他們存在著聯(lián)系 比如 provider  consumer和registry三者之間是長連接的,而provider和consumer向registry注冊服務(wù)以及訂閱服務(wù)的時間都得向monitor匯報。而健壯性則說明具有穩(wěn)定性,比如書注冊中心對等集群中任意一臺服務(wù)器宕掉后,將自動切換到另一臺。就算注冊中心全部宕掉  服務(wù)者和消費者仍可以通過本地緩存進行通訊。而伸縮性就是可以通過增加繼器部署實例進行添加新的注冊中心和服務(wù)提供者。升級性是提到的對未來架構(gòu)的設(shè)想,比起目前架構(gòu)它的特點是還可以實現(xiàn)自動部署服務(wù)的本地代理及可以通過訪問壓力來自動增減服務(wù)提供者。

Dubbo基礎(chǔ)知識點有哪些

Dubbo基礎(chǔ)知識點有哪些

服務(wù)節(jié)點關(guān)系的調(diào)用

1 服務(wù)容器負責(zé)啟動 ,加載  運行服務(wù)提供者

2 服務(wù)提供者在啟動時  向注冊中心注冊自己提供的服務(wù)

3 服務(wù)消費者在啟動時 向注冊中心訂閱自己所需要的服務(wù)。

4 注冊中心返回服務(wù)提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者。

5 服務(wù)消費者 從提供地址列表中 基于轉(zhuǎn)負載均衡算法,選一臺提供者進行調(diào)用,如果調(diào)用失敗  再選一臺進行調(diào)用。

6 服務(wù)調(diào)用者和消費者 在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。

當zookeeper作為dubbo的注冊中心時,是怎樣工作的?

zookeeper作為dubbo的注冊中心時,服務(wù)提供者在初始化啟動時,會在zookeeper下的dubbo節(jié)點下的服務(wù)節(jié)點下的provider節(jié)點下的節(jié)點創(chuàng)建一個子節(jié)點并寫入URL 路徑類似于/dubbo/servicename/providers/,該路徑下的所有子節(jié)點均為服務(wù)提供者。此時所有節(jié)點均為臨時節(jié)點,因為臨時節(jié)點的生命周期與客戶端會話相關(guān),所以一旦提供者所在的機器出現(xiàn)故障無法提供服務(wù),該臨時節(jié)點會自動從zookeeper中消除。此時因為消費者  服務(wù)者  注冊中心是長連接,注冊中心能感知服務(wù)者宕機,它會告訴消費者。而監(jiān)控中心是Dubbo服務(wù)治理體系中重要的一部分,它需要知道所有的服務(wù)者和提供者的變化,所以它在啟動時會在服務(wù)節(jié)點上注冊一個watcher來監(jiān)聽子節(jié)點的變化,路徑為/dubbo/servicename,所以它也能感知服務(wù)提供者的宕機。服務(wù)消費者節(jié)點的創(chuàng)建過程和提供者是一樣的而且也是臨時節(jié)點。還有一個特性就是zookeeper的節(jié)點結(jié)構(gòu)設(shè)計,它以服務(wù)名和類型,也就是/dubbo/servie為節(jié)點路徑,符合Dubbo訂閱和通知的需求,保證了以服務(wù)為力度的變更通知,通知范圍易于控制。所以即使消費者和提供者頻繁變更,對zookeeper的性能也不會造成多大影響。

什么是Dubbo?

Dubbo是一款高性輕量級的開源Java  RPC框架,它提供了三大核心功能:面向接口的遠程方法調(diào)用,只能容錯和負載均衡,以及服務(wù)自動注冊和發(fā)現(xiàn)。簡單來說Dubbo是一個分布式服務(wù)框架,致力于提高性能和透明化的RPC遠程調(diào)用方案,以及SOA服務(wù)治理方案。

什么是RPC  RPC 的原理是什么?

RPC是一種遠程調(diào)用,它是一種通過網(wǎng)絡(luò)從計算機程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。比如兩個不同的服務(wù)A B ,部署在兩臺不同的機器上,如果服務(wù)A想調(diào)用服務(wù)B中的某個方法怎么辦,使用HTTP請求,當然可以,但是會比較慢而且一些優(yōu)化做的并不好。RPC的出現(xiàn)正是為了解決這個問題。

RPC原理是什么?
Dubbo基礎(chǔ)知識點有哪些

為()什么要用Dubbo?

Dubbo的誕生和SOA分布式架構(gòu)有很大的關(guān)系。SOA面向服務(wù)的架構(gòu),也就是把工程按照業(yè)務(wù)邏輯分成服務(wù)表現(xiàn)層兩個工程。服務(wù)層中包含業(yè)務(wù)邏輯,只需要對外提供服務(wù)即可。表現(xiàn)層只需要處理和頁面的交互,業(yè)務(wù)邏輯都是調(diào)用服務(wù)層的服務(wù)來實現(xiàn)的。SOA架構(gòu)中主要有兩個角色:服務(wù)提供者(provider)和服務(wù)使用者(Cosumer)。

Dubbo基礎(chǔ)知識點有哪些

如果要開發(fā)分布式程序,可以直接用HTTP接口進行通信,為什么還要用Dubbo呢?

可以從Dubbo提供的四點特性來說明為什么要用Dubbo?
1 負載均衡  -----同一個服務(wù)部署在不同的服務(wù)器時刻該調(diào)用哪一臺機器上的服務(wù)。

2 服務(wù)調(diào)用鏈路生成  -----隨著系統(tǒng)的發(fā)展,服務(wù)越來越多,服務(wù)之間的依賴關(guān)系變得錯綜復(fù)雜,甚至分不清哪個應(yīng)用在哪個應(yīng)用之前啟動,架構(gòu)師也不能完整的描述架構(gòu)關(guān)系。Dubbo可以為我們解決服務(wù)之間如何調(diào)用的問題。

3 服務(wù)訪問壓力及時長統(tǒng)計、資源調(diào)整和力度------基于訪問壓力時管理集群容量,提高集群利用率。

4 服務(wù)降級------某個服務(wù)掛掉之后調(diào)用備用服務(wù)。

什么是分布式?

分布式或者說SOA分布式重要的是面向服務(wù),說簡單的分布式就是我們將整個系統(tǒng)拆分成不同的服務(wù)然后將這些服務(wù)放在不同的服務(wù)器上減輕單體服務(wù)的壓力提高并發(fā)量和性能。比如電商系統(tǒng)可以拆分成訂單系統(tǒng)、 商品系統(tǒng)、登陸系統(tǒng)。拆分之后每個系統(tǒng)可以部署在不同的服務(wù)器上,如果一個服務(wù)的訪問量比較大的話也可以將這個服務(wù)同時部署在多臺機器上。

為什么要用分布式?

從開發(fā)的角度來講單體的應(yīng)用代碼都集中在一起,而分布式系統(tǒng)的代碼根據(jù)業(yè)務(wù)被拆分。所以每個團隊可以負責(zé)一個服務(wù)的開發(fā),這樣就提升了開發(fā)效率。另外  代碼根據(jù)業(yè)務(wù)拆分之后更加便于維護和發(fā)展。

Dubbo的負載均衡策略·

先解釋一下什么是負載均衡?

維基百科對負載均衡的定義:

Dubbo基礎(chǔ)知識點有哪些

比如系統(tǒng)中的某個服務(wù)訪問量很大,我們將這個服務(wù)上部署在多臺服務(wù)器上,當客戶端發(fā)起請求的時候,多臺服務(wù)器就可以處理這個請求。那么如何正確選擇處理該請求的服務(wù)器就很關(guān)鍵。假如  就要一臺服務(wù)器來處理這些請求,那該服務(wù)部署在多臺服務(wù)器的意義就不大了。負載均衡就是為了避免單個服務(wù)器響應(yīng)同一請求,容易造成服務(wù)宕機、崩潰等問題。

Dubbo的負載均衡策略

1 Random   LoadBalance(默認,基于權(quán)重的隨機負載均衡機制)

隨機  按權(quán)重設(shè)置隨機概率       在一個截面上碰撞的概率高,但調(diào)用量越大分布越均勻,有利于動態(tài)調(diào)整提供者權(quán)重。

Dubbo基礎(chǔ)知識點有哪些

2 RoundRobin  LoadBalance (不推薦,基于權(quán)重的輪詢負載均衡機制)

輪詢 ,按照公約后的權(quán)重設(shè)置輪詢比率。

存在慢的提供者積累請求的問題:比如 第二臺機器很慢,但沒掛,當請求調(diào)到第二臺機器時就卡在那,久而久之,所有請求都調(diào)到第二臺上。

Dubbo基礎(chǔ)知識點有哪些

3  LeastActive  LoadBalance

* 最少活躍調(diào)用數(shù),相同活躍數(shù)的隨機,活躍數(shù)指調(diào)用前后計數(shù)差

* 使慢的提供者收到更少的請求,因為越慢的提供者的調(diào)用前后計數(shù)差越大。

4 ConsistentHash    LoadBalance

一致性Hash,相同參數(shù)的請求總是發(fā)送到同一提供者。

到此,相信大家對“Dubbo基礎(chǔ)知識點有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI