Dubbo+zookeeper?最簡單的分布式搭建方案
Dubbo+zookeeper 最簡單的分布式搭建
介紹:本例采用 dubbo+zookeeper 搭建分布式系統(tǒng),環(huán)境 jdk1.8
運(yùn)行介紹:啟動(dòng) zookeeper - 啟動(dòng)服務(wù)提供者 - 啟動(dòng)服務(wù)消費(fèi)者
整個(gè)項(xiàng)目的代碼已上傳到github,https://github.com/brotherAndy/dubbo,歡迎查看。
整個(gè)項(xiàng)目的代碼已上傳csdn下載頻道,http://xiazai.jb51.net/202204/yuanma/dubbo_master_jb51.rar,歡迎下載。
分布式架構(gòu):
1.當(dāng)垂直應(yīng)用越來越多,應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來,作為獨(dú)立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心,前端應(yīng)用能更快速的響應(yīng)多變的市場需求。
2.此時(shí),用于提高業(yè)務(wù)復(fù)用及整合的 分布式服務(wù)框架(RPC) 是關(guān)鍵。
Dubbo 是什么
- 一款分布式服務(wù)框架
- 高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案
- SOA服務(wù)治理方案
Dubbo 架構(gòu)流程圖

Provider:服務(wù)提供方
Consumer:服務(wù)消費(fèi)者
Registry:注冊(cè)中心
Monitor:統(tǒng)計(jì)服務(wù)調(diào)用次數(shù)和調(diào)用時(shí)間的監(jiān)控中心
調(diào)用流程
0.啟動(dòng)服務(wù)提供者。
1.服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。
2.服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)。
3.注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長連接推送變更數(shù)據(jù)給消費(fèi)者。
4.服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺(tái)調(diào)用。
5.服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送一次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。
注冊(cè)中心
服務(wù)提供方:針對(duì)所提供的服務(wù)到注冊(cè)中心發(fā)布。
服務(wù)消費(fèi)方:到服務(wù)中心訂閱所需的服務(wù)。
對(duì)于任何一方,不論服務(wù)提供方或者服務(wù)消費(fèi)方都有可能同時(shí)兼具兩種角色,即需要提供服務(wù)也需要消費(fèi)服務(wù)。
架構(gòu)搭建案例
1.zookpeeper 安裝
把包下載后,解壓到目錄,例如:D:\software\work\zookeeper (解壓后更名為zookeeper)
修改zoo_sample.cfg 文件名(D:\software\work\zookeeper\conf) 為 zoo.cfg
主要更改配置文件里面的日志目錄,如下:
dataDir=D:\zookeeper\data
dataLogDir=D:\zookeeper\log
啟動(dòng)
進(jìn)入到bin目錄,并且啟動(dòng)zkServer.cmd,如圖:

2.創(chuàng)建maven工程
工程分為4個(gè)結(jié)構(gòu)
- dubbo 工程,主工程,主要導(dǎo)入公共jar包等
- dubbo-api 工程,公共接口
- dubbo-provider 工程,服務(wù)提供者
- dubbo-consumer-user 和 dubbo-consumer 工程,服務(wù)消費(fèi)者

(注:每個(gè)工程都是獨(dú)立的,通過maven 引入父子關(guān)系)
1.創(chuàng)建dubbo 的maven 主工程
創(chuàng)建步驟省略,主要導(dǎo)入相關(guān)jar包等,具體請(qǐng)查看給到源碼的pom.xml,此工程暫僅配置pom.xml,沒有其他操作
2.創(chuàng)建dubbo-api 的maven 接口工程
主要定義接口,并配置好pom.xml


3.創(chuàng)建dubbo-provider 的maven 工程
服務(wù)提供者,實(shí)現(xiàn)公共接口的實(shí)現(xiàn),此實(shí)現(xiàn)對(duì)消費(fèi)者隱藏
加入公共接口所在的依賴

接口實(shí)現(xiàn)

用Spring配置聲明服務(wù)

服務(wù)者啟動(dòng)(前提啟動(dòng) zookeeper)

4.創(chuàng)建dubbo-consumer-user 的maven 工程(可以有多個(gè)consumer,配置跟上)
服務(wù)消費(fèi)者,實(shí)現(xiàn)公共接口的實(shí)現(xiàn),調(diào)用服務(wù)
通過Spring引用服務(wù)

啟動(dòng)consumer ,調(diào)用服務(wù)

5.運(yùn)行項(xiàng)目,順序:zookeeper –> dubbo-provider –> dubbo-consumer-user
運(yùn)行結(jié)果

3.dubbo-admin 搭建
提供界面化管理dubbo 服務(wù)
dubbo-admin的下載,可自行到官網(wǎng)下載:https://github.com/alibaba/dubbo
下載后把war包放入tomcat的webapps目錄下,啟動(dòng)tomcat
瀏覽器輸入:http://localhost:8080/dubbo-admin/
默認(rèn)賬號(hào): root 密碼:root
效果圖:
服務(wù)列表

服務(wù)詳細(xì)

整個(gè)項(xiàng)目的代碼已上傳到github,https://github.com/brotherAndy/dubbo,歡迎查看。
整個(gè)項(xiàng)目的代碼已上傳csdn下載頻道,http://xiazai.jb51.net/202204/yuanma/dubbo_master_jb51.rar,歡迎下載。
到此這篇關(guān)于Dubbo+zookeeper 最簡單的分布式搭建方案的文章就介紹到這了,更多相關(guān)Dubbo+zookeeper分布式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
java中javamail發(fā)送帶附件的郵件實(shí)現(xiàn)方法
這篇文章主要介紹了java中javamail發(fā)送帶附件的郵件實(shí)現(xiàn)方法,較為詳細(xì)的分析了JavaMail發(fā)送郵件的用法,是非常實(shí)用的技巧,需要的朋友可以參考下2015-01-01
java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程
這篇文章主要為大家介紹了java高并發(fā)ThreadPoolExecutor類解析線程池執(zhí)行流程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
Java 中的 Class.forName(類名) 使用及原理解析
Class.forName是Java中用于動(dòng)態(tài)加載類的強(qiáng)大工具,廣泛應(yīng)用于數(shù)據(jù)庫驅(qū)動(dòng)加載、反射機(jī)制和插件系統(tǒng)等場景,它通過ClassLoader加載類并執(zhí)行靜態(tài)初始化代碼,但在使用時(shí)需要注意類路徑、初始化副作用和類加載器的選擇等問題,感興趣的朋友一起看看吧2024-12-12
Java List簡介_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
Java中可變數(shù)組的原理就是不斷的創(chuàng)建新的數(shù)組,將原數(shù)組加到新的數(shù)組中,下文對(duì)Java List用法做了詳解。需要的朋友參考下吧2017-05-05

