Dubbo+zookeeper?最簡(jiǎn)單的分布式搭建方案
Dubbo+zookeeper 最簡(jiǎn)單的分布式搭建
介紹:本例采用 dubbo+zookeeper 搭建分布式系統(tǒng),環(huán)境 jdk1.8
運(yùn)行介紹:?jiǎ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)多變的市場(chǎ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è)中心將基于長(zhǎng)連接推送變更數(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 最簡(jiǎn)單的分布式搭建方案的文章就介紹到這了,更多相關(guān)Dubbo+zookeeper分布式內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于java Springboot實(shí)現(xiàn)教務(wù)管理系統(tǒng)詳解
這篇文章主要介紹了Java 實(shí)現(xiàn)簡(jiǎn)易教務(wù)管理系統(tǒng)的代碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-08-08Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能實(shí)例詳解
這篇文章主要介紹了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能,較為詳細(xì)的講述了外觀模式的概念、原理并結(jié)合實(shí)例形似詳細(xì)分析了Java基于外觀模式實(shí)現(xiàn)美食天下食譜功能的具體操作步驟與相關(guān)注意事項(xiàng),需要的朋友可以參考下2018-05-05Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot基礎(chǔ)學(xué)習(xí)之Mybatis操作中使用Redis做緩存的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧2018-11-11SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)的三種方式小結(jié)
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)定時(shí)任務(wù)的三種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11logback的AsyncAppender高效日志處理方式源碼解析
這篇文章主要為大家介紹了logback的AsyncAppender高效日志處理方式源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10