摘要:簡(jiǎn)介是阿里巴巴公司開源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過(guò)高性能的實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和框架無(wú)縫集成。它提供了三大核心能力面向接口的遠(yuǎn)程方法調(diào)用智能容錯(cuò)和負(fù)載均衡服務(wù)自動(dòng)注冊(cè)和發(fā)現(xiàn)。首先我們需要前往官網(wǎng)下載安裝包。
Dubbo 簡(jiǎn)介
Dubbo是阿里巴巴公司開源的一個(gè)高性能優(yōu)秀的服務(wù)框架,使得應(yīng)用可通過(guò)高性能的RPC實(shí)現(xiàn)服務(wù)的輸出和輸入功能,可以和Spring框架無(wú)縫集成。
它提供了三大核心能力:
面向接口的遠(yuǎn)程方法調(diào)用
智能容錯(cuò)和負(fù)載均衡
服務(wù)自動(dòng)注冊(cè)和發(fā)現(xiàn)。
可以看出圖中存在著五種角色:
Provider:服務(wù)提供者
Consumer:服務(wù)消費(fèi)者
Registry:服務(wù)注冊(cè)中心
Monitor:服務(wù)監(jiān)控中心
Container:服務(wù)運(yùn)行的容器
圖上的過(guò)程可以這么來(lái)解釋:
在容器(Container)啟動(dòng)服務(wù)的提供者(Provider)
服務(wù)的提供者(Provider)將服務(wù)以接口的形式注冊(cè)到注冊(cè)中心(Registry)
服務(wù)的消費(fèi)者(Consumer)向注冊(cè)中心訂閱服務(wù)
注冊(cè)中心向服務(wù)的消費(fèi)者返回服務(wù)的提供者提供的服務(wù)接口(異步)
服務(wù)的消費(fèi)者去調(diào)用服務(wù)的提供者(同步)
監(jiān)控中心負(fù)責(zé)統(tǒng)計(jì)服務(wù)的調(diào)用次數(shù)和調(diào)用時(shí)間的日志服務(wù)。
這里我們采用 zookeeper 作為服務(wù)注冊(cè)中心,這里我查閱官方文檔發(fā)現(xiàn) Redis 也可以作為Dubbo的注冊(cè)中心,只不過(guò)在應(yīng)用中比較少見,而且官方文檔中也說(shuō)明了:
如果我們想用的話,只需要把dubbo.registry.addrss的值改為redis://127.0.0.1:6379即可使用。
理論到這里,下面就讓我們來(lái)進(jìn)入實(shí)戰(zhàn)吧~
zookeeper的安裝這里我是在 Mac OS 環(huán)境下進(jìn)行安裝,你可以在本地安裝虛擬機(jī)來(lái)完成這個(gè)操作。
首先我們需要前往官網(wǎng)下載安裝包。
# 0. 解壓 tar -zxvf zookeeper-3.4.13.tar.gz # 1. 切換到解壓后的目錄下 cd zookeeper-3.4.13/ # 2. 建立data和logs目錄 mkdir data mkdir logs # 3. 復(fù)制zoo_sample.cfg 為 zoo.cfg cd conf/ cp zoo_sample.cfg zoo.cfg # 4. 修改配置 vi zoo.cfg dataDir=剛剛新建的data目錄的絕對(duì)路徑 logDir=剛剛新建的data目錄的絕對(duì)路徑 # 5. 啟動(dòng) cd ../bin ./zkServer.sh start # 6. 檢測(cè)是否啟動(dòng)成功 ./zkServer.sh status實(shí)例 編寫Provider
引入我們項(xiàng)目需要的Maven依賴:
io.dubbo.springboot spring-boot-starter-dubbo 1.0.0
然后對(duì)注冊(cè)中心以及服務(wù)接口包的暴露的配置
spring.dubbo.application.name=provider spring.dubbo.registry.address=zookeeper://127.0.0.1:2181 spring.dubbo.protocol.name=dubbo spring.dubbo.protocol.port=27899 spring.dubbo.scan=indi.viyoung.dubbo.provider.service
編寫Service接口和實(shí)現(xiàn)類:
public interface TestService { String test(); }
@Service public class TestServiceImpl implements TestService { @Override public String test() { return "Hello Wolrd"; } }
需要注意的是這里的Service注解必須是dubbo包下的喲,可千萬(wàn)別寫錯(cuò)了!
編寫Consumer同樣要引入依賴:
io.dubbo.springboot spring-boot-starter-dubbo 1.0.0
Consumer的配置的話比較少:
spring.dubbo.application.name=consumer spring.dubbo.registry.address=zookeeper://127.0.0.1:2181
直接在Controller中引用
public class TestController { @Reference private TestService testService; @RequestMapping() public String hello() { return testService.test(); } }
注意這里的@Reference注解不要寫錯(cuò),應(yīng)該是Dubbo包下的!
然后把項(xiàng)目啟動(dòng)后,我們?cè)L問(wèn)一下:
Nice,訪問(wèn)成功!
下面,我們來(lái)學(xué)習(xí)一下Dubbo-Admin的使用
Dubbo-AdminDubbo-Admin之前給我的感覺就是沒有UI的樣子:
大概就長(zhǎng)這個(gè)樣子,賊丑,但是不知道啥時(shí)候悄悄摸摸的更新了一波,變得讓顏值控也是非常滿意,而且支持jar包啟動(dòng),不用再去多帶帶的安裝Tomcat~
git clone https://github.com/apache/incubator-dubbo-ops.git
首先從Git上把這個(gè)項(xiàng)目拉下來(lái),用IDEA打開:
只需要添加一個(gè)端口號(hào)的配置,然后使用左側(cè)的maven打包工具打包:
然后去dubbo-admin-server的target的目錄下使用以下命令:
java -jar dubbo-admin-server-0.1.jar >run.log &
然后打開瀏覽器,輸入localhost:7070
對(duì)比之前的UI簡(jiǎn)直強(qiáng)了無(wú)數(shù)倍,而且賊方便!
具體的功能大家可以跟著操作之后去探討,這里就不再展開來(lái)說(shuō)了。
今天的文章就到這里,下面宣布一個(gè)好消息:
活動(dòng)通知原定于粉絲達(dá)到一定數(shù)量后做送書活動(dòng)回饋大家,由于本公號(hào)博主真愛技術(shù)佛系漲粉,無(wú)運(yùn)營(yíng)無(wú)套路,所以增粉速度超~級(jí)~慢~,原定目標(biāo)短時(shí)間內(nèi)無(wú)法達(dá)成,因此決定清明小長(zhǎng)假過(guò)后就開啟送書活動(dòng),大家久等了!感謝大家的信任支持與相伴,筆芯~
掃碼即可參加活動(dòng)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/76069.html
摘要:在之后,也終于發(fā)布了最新的版本。該版本距離上一次發(fā)布,過(guò)去了整整個(gè)月下面就隨我一起看看,這個(gè)大家期待已久的版本都有哪些內(nèi)容值得我們關(guān)注。如果是用戶,同時(shí)也是阿里云這些產(chǎn)品的用戶,那么直接使用還是非常方便的。 在Nacos 1.0.0 Release之后,Spring Cloud Alibaba也終于發(fā)布了最新的版本。該版本距離上一次發(fā)布,過(guò)去了整整4個(gè)月!下面就隨我一起看看,這個(gè)大家期...
摘要:在服務(wù)治理方面,相較于而言,并不成熟。遺憾的是,往往被部分開發(fā)者片面地視作服務(wù)治理的框架,而非微服務(wù)基礎(chǔ)設(shè)施。因此,建議開發(fā)人員將或者遷移為服務(wù)。因此,下一步需要將其配置服務(wù)遠(yuǎn)程。當(dāng)服務(wù)提供方啟動(dòng)后,下一步實(shí)現(xiàn)一個(gè)服務(wù)消費(fèi)方。 原文鏈接:Dubbo Spring Cloud 重塑微服務(wù)治理,來(lái)自于微信公眾號(hào):次靈均閣 摘要 在 Java 微服務(wù)生態(tài)中,Spring Cloud1 成為...
Github 地址:https://github.com/Snailclimb/springboot-integration-examples ,歡迎各位 Star。 目錄: 使用 SpringBoot+Dubbo 搭建一個(gè)簡(jiǎn)單分布式服務(wù) 實(shí)戰(zhàn)之前,先來(lái)看幾個(gè)重要的概念 什么是分布式? 什么是 Duboo? Dubbo 架構(gòu) 什么是 RPC? 為什么要用 Dubbo? 開始實(shí)戰(zhàn) 1 ...
摘要:文件引入相關(guān)依賴需要引入接口的相關(guān)依賴包。服務(wù)提供者,包含真正的服務(wù)實(shí)現(xiàn)代碼服務(wù)提供者啟動(dòng)類編寫注意不要忘記加上注解開啟的自動(dòng)配置。前言搭建一個(gè)SpringBoot+Dubbo+zookeeper的demo完整代碼見:github.com/Caizhenhao/…1. 安裝zookeeper環(huán)境搭建 zookeeper 之前要確保當(dāng)前的服務(wù)器已經(jīng)有 JDK 環(huán)境。我使用的是阿里云服務(wù)器注意:...
摘要:可簡(jiǎn)單地認(rèn)為它是的擴(kuò)展,負(fù)載均衡自然成為不可或缺的特性。類似的特性在項(xiàng)目也有體現(xiàn),它是另一種高性能代理的方案,提供服務(wù)發(fā)現(xiàn)健康和負(fù)載均衡。 Dubbo Cloud Native 實(shí)踐與思考 分享簡(jiǎn)介 Cloud Native 應(yīng)用架構(gòu)隨著云技術(shù)的發(fā)展受到業(yè)界特別重視和關(guān)注,尤其是 CNCF(Cloud Native Computing Foundation)項(xiàng)目蓬勃發(fā)展之際。Dubbo...
閱讀 3083·2021-09-28 09:43
閱讀 918·2021-09-08 09:35
閱讀 1453·2019-08-30 15:56
閱讀 1199·2019-08-30 13:00
閱讀 2745·2019-08-29 18:35
閱讀 1840·2019-08-29 14:07
閱讀 3451·2019-08-29 13:13
閱讀 1344·2019-08-29 12:40