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

Provider:服務(wù)提供方
Consumer:服務(wù)消費者
Registry:注冊中心
Monitor:統(tǒng)計服務(wù)調(diào)用次數(shù)和調(diào)用時間的監(jiān)控中心
調(diào)用流程
0.啟動服務(wù)提供者。
1.服務(wù)提供者在啟動時,向注冊中心注冊自己提供的服務(wù)。
2.服務(wù)消費者在啟動時,向注冊中心訂閱自己所需的服務(wù)。
3.注冊中心返回服務(wù)提供者地址列表給消費者,如果有變更,注冊中心將基于長連接推送變更數(shù)據(jù)給消費者。
4.服務(wù)消費者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺提供者進(jìn)行調(diào)用,如果調(diào)用失敗,再選另一臺調(diào)用。
5.服務(wù)消費者和提供者,在內(nèi)存中累計調(diào)用次數(shù)和調(diào)用時間,定時每分鐘發(fā)送一次統(tǒng)計數(shù)據(jù)到監(jiān)控中心。
注冊中心
服務(wù)提供方:針對所提供的服務(wù)到注冊中心發(fā)布。
服務(wù)消費方:到服務(wù)中心訂閱所需的服務(wù)。
對于任何一方,不論服務(wù)提供方或者服務(wù)消費方都有可能同時兼具兩種角色,即需要提供服務(wù)也需要消費服務(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
啟動
進(jìn)入到bin目錄,并且啟動zkServer.cmd,如圖:

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

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


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

接口實現(xiàn)

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

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

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

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

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

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

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

整個項目的代碼已上傳到github,https://github.com/brotherAndy/dubbo,歡迎查看。
整個項目的代碼已上傳csdn下載頻道,http://xiazai.jb51.net/202204/yuanma/dubbo_master_jb51.rar,歡迎下載。
到此這篇關(guān)于Dubbo+zookeeper 最簡單的分布式搭建方案的文章就介紹到這了,更多相關(guān)Dubbo+zookeeper分布式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于java Springboot實現(xiàn)教務(wù)管理系統(tǒng)詳解
這篇文章主要介紹了Java 實現(xiàn)簡易教務(wù)管理系統(tǒng)的代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-08-08
Java基于外觀模式實現(xiàn)美食天下食譜功能實例詳解
這篇文章主要介紹了Java基于外觀模式實現(xiàn)美食天下食譜功能,較為詳細(xì)的講述了外觀模式的概念、原理并結(jié)合實例形似詳細(xì)分析了Java基于外觀模式實現(xiàn)美食天下食譜功能的具體操作步驟與相關(guān)注意事項,需要的朋友可以參考下2018-05-05
Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-11-11
SpringBoot實現(xiàn)定時任務(wù)的三種方式小結(jié)
這篇文章主要介紹了SpringBoot實現(xiàn)定時任務(wù)的三種方式小結(jié),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
logback的AsyncAppender高效日志處理方式源碼解析
這篇文章主要為大家介紹了logback的AsyncAppender高效日志處理方式源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10

