文章目錄
一:Dubbo注冊中心引言
1:什么是Dubbo的注冊中心?
2:注冊中心關系圖解
3:引入注冊中心服務執行流程
4:Dubbo注冊中心好處
5:注冊中心核心作用
二:注冊中心實現方案
1:早期
2:當前現狀
三:DubboAdmin介紹
1:DubboAdmin簡介
2:DubboAdmin的主要功能
一:Dubbo注冊中心引言
1:什么是Dubbo的注冊中心?
? ? ? ? Dubbo注冊中心是Dubbo服務治理中極其重要的一個概念。它主要是用于對Rpc集群應用實例進行管理。
? ? ? ? 對于我們的Dubbo服務來講,至少有兩部分構成,一部分是Provider一部分是Consumer。一個提供服務,一個調用我們的服務。
? ? ? ? 后續隨著規模的擴大,單機Provider受限于物理機的內存、CPU、網絡帶寬等硬件瓶頸,以及隨著請求數量越來越多,鏈接數量也可能會達到瓶頸,這樣的話,我們需要橫向拓展我們的系統。這樣我們的Consumer和Provider都會越來越多!
? ? ? ? Consumer和Provider都會越來越多之后,如何管理這么多的實例就需要引入我們的注冊中心了。這就是Dubbo引入注冊中心的必要性!
2:注冊中心關系圖解
3:引入注冊中心服務執行流程
?????????Dubbo引入注冊中心之后,我們的服務流程有了一點點的變化!
? ? ? ? 引入注冊中心的目的就是為了管理Provider集群。其中管理者一個服務的一組多個實例。? ? ? ? ????????
????????第一步:作為我們這一組Provider實例,必須在服務啟動的時候首先向我們的注冊中心進行注冊,注冊的內容中最為核心的內容就是本服務的ip地址和端口號。(當然肯定有別的內容,后續介紹!)
????????第二步:我們的客戶端也就是消費者Consumer來對我們的提供者Provider來發起調用!所以,首先在消費者啟動的時候從注冊中心拉取、訂閱、服務發現我們的提供者的列表。把這個列表拉取到我們消費者的本地進行保存。
????????第三步:這時候基于不同的負載均衡算法,從注冊中心管理的諸多提供者實例中挑選一個實例出來進行Rpc調用。(負載均衡算法為了滿足挑選實例的需要,這是一種客戶端負載均衡的策略。Ngnix是服務端的負載均衡)
????????第四步:第四步,我們就是要去做容錯機制。什么叫容錯呢?剛才,我們的服務器都進行了注冊,然后消費者都拿到了他們的注冊信息,萬一發起請求的時候,某個提供者服務端掛了呢?這是有可能的。
? ? ? ? 所以,容錯機制就是當我們真實發起調用的時候,如果服務端掛了,怎么能夠基于容錯機制,把請求打到可用的實例上。
????????第五步:獲取真實的反應結果。
4:Dubbo注冊中心好處
? ? ? ? 好處一:可以有效的管理RPC集群的健康情況,動態的上線或者下線服務。讓我們的服務更加?可?。
? ? ? ? 結合我們上邊的圖理解一下就好。注冊中心將所有的提供者都注冊到它本身,這樣注冊中心不僅僅留存了他們所有的ip和端口號。
????????更重要的是,有了這些信息之后,就可以對服務的健康問題進行檢查。
????????一旦服務掛了,可以實現服務的動態下線,或者流量激增,我們也可以動態讓我們的下線服務再次上線!注冊中心可以完成這個事!
????????好處二:Provider與Consumer解耦合。
? ? ? ? 不用注冊中心,我們就得進行消費者和提供者之間的直連,這樣的話把提供者的ip地址和端口號綁定到我們的消費者服務當中,這是一種耦合!
? ? ? ?好處三:提供負載均衡機制。
? ? ? ?可以合理的分配流量
? ? ? ?好處四:提供容錯機制。
? ? ? ? 剛才已經分析過了。某一個實例掛了,會自動切換到一個健康的實例上,這是一種高可用的體現!
5:注冊中心核心作用
作用一:服務注冊,服務提供者(Provider)在啟動時,會將自身可提供的服務注冊到注冊中心作用二:服務發現,服務消費者(Consumer)在啟動時,會向注冊中心訂閱??需要的服務,注冊中心會將相應的服務提供者信息返回給消費者,消費者據此可以調用對應的服務。作用三:服務路由,負載均衡、容錯作用四:服務監控,注冊中?可以記錄服務的調?次數、調?延遲等信息,對服務的質量進?監控。
二:注冊中心實現方案
1:早期
? ? ? ? 早期在生產環境當中,我們主要使用Zookeeper作為Dubbo的注冊中心實現。我們前邊所講到的所有內容都交給了Zookeeper
2:當前現狀
? ? ? ?當前,隨著技術發展,很有優秀的注冊中心涌現出來:Zookeeper、Nacos、Consul、Etcd等等
? ? ? ? 在今天,Dubbo的注冊中心有很多選擇,后續我們的文章當中,Zookeeper、Nacos、Consul這些注冊中心在Dubbo中的使用,我們都會一一進行分析!
? ? ? ? 需要注意的是:上述注冊中心,他們的核心功能大致像是,但是他們的實現過程是有底層性差異的,但是總體差異不大!
三:DubboAdmin介紹
1:DubboAdmin簡介
????????Dubbo Admin是Apache Dubbo服務治理和管理系統的?部分。它主要幫我們管理的是服務相關的內容。
????????DubboAdmin最為重要的內容:DubboAdmin提供了?套?于服務治理的Web界面,讓我們可以更?便地對Dubbo系統進?管理和監控。
????????新版本的Dubbo Admin是基于VUE、SpringBoot開發的,是一套前后端分離的Web系統。
2:DubboAdmin的主要功能
?????????服務管理:Dubbo Admin可以查看所有提供者和消費者的詳細信息,?包括服務地址、方法、參數等。
????????路由規則:Dubbo Admin可以根據需要設置路由規則,將請求導向特定的服務提供者。?
????????動態配置:Dubbo Admin可以動態地改變服務的配置,包括負載均衡策略、容錯策略等。
????????權限控制:Dubbo Admin?持對訪問進行權限控制,只有獲得授權的用戶才能訪問特定的服務。
????????監控和統計:Dubbo Admin可以收集并展示服務的運行數據,包括調用次數、響應時間等。
????????綜上所述:開發者通過Dubbo Admin可以更?便地進?服務治理和管理,提高服務的可?性和可維護性。
????????注意:我們本次課程學習的是,是DubboAdmin的最新版本:0.5.0
? ? ? ? 添加微信:DaShuDeveloper 拉你進我們的技術交流群,我們一起討論Dubbo,一起學習Dubbo,一起干翻Dubbo!