架構(gòu)師成長(zhǎng)之路之Dubbo接口一(快速入門)

一、什么是Dubbo接口

Dubbo 接口是阿里巴巴開源的致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)治理方案,dubbo框架告別了傳統(tǒng)的web service的服務(wù)模式,進(jìn)而改用provider和consumer模式進(jìn)行服務(wù)。為什么是高性能的呢?可以在某個(gè)服務(wù)器集群中提供單一專注的服務(wù),這樣不與其他服務(wù)混雜,同時(shí)dubbo接口有SOA調(diào)度通過(guò)監(jiān)控每臺(tái)服務(wù)器而實(shí)現(xiàn)負(fù)載均衡。consumer端無(wú)需關(guān)注provider端如何實(shí)現(xiàn),只需在注冊(cè)中心訂閱即可到相應(yīng)服務(wù)器請(qǐng)求服務(wù),這樣就實(shí)現(xiàn)了高性能和透明化。說(shuō)到底,Dubbo接口就是一個(gè)分布式服務(wù)框架。

二、為什么要使用Dubbo接口(以下引用來(lái)自duboo接口官方文檔)

“隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)站應(yīng)用的規(guī)模不斷擴(kuò)大,常規(guī)的垂直應(yīng)用架構(gòu)已無(wú)法應(yīng)對(duì),分布式服務(wù)架構(gòu)以及流動(dòng)計(jì)算架構(gòu)勢(shì)在必行,亟需一個(gè)治理系統(tǒng)確保架構(gòu)有條不紊的演進(jìn)

單一應(yīng)用架構(gòu)
當(dāng)網(wǎng)站流量很小時(shí),只需一個(gè)應(yīng)用,將所有功能都部署在一起,以減少部署節(jié)點(diǎn)和成本。此時(shí),用于簡(jiǎn)化增刪改查工作量的數(shù)據(jù)訪問(wèn)框架(ORM)是關(guān)鍵。

垂直應(yīng)用架構(gòu)
當(dāng)訪問(wèn)量逐漸增大,單一應(yīng)用增加機(jī)器帶來(lái)的加速度越來(lái)越小,將應(yīng)用拆成互不相干的幾個(gè)應(yīng)用,以提升效率。此時(shí),用于加速前端頁(yè)面開發(fā)的Web框架(MVC)是關(guān)鍵。

分布式服務(wù)架構(gòu)
當(dāng)垂直應(yīng)用越來(lái)越多,應(yīng)用之間交互不可避免,將核心業(yè)務(wù)抽取出來(lái),作為獨(dú)立的服務(wù),逐漸形成穩(wěn)定的服務(wù)中心,使前端應(yīng)用能更快速的響應(yīng)多變的市場(chǎng)需求。此時(shí),用于提高業(yè)務(wù)復(fù)用及整合的分布式服務(wù)框架(RPC)是關(guān)鍵。

流動(dòng)計(jì)算架構(gòu)
當(dāng)服務(wù)越來(lái)越多,容量的評(píng)估,小服務(wù)資源的浪費(fèi)等問(wèn)題逐漸顯現(xiàn),此時(shí)需增加一個(gè)調(diào)度中心基于訪問(wèn)壓力實(shí)時(shí)管理集群容量,提高集群利用率。此時(shí),用于提高機(jī)器利用率的資源調(diào)度和治理中心(SOA)是關(guān)鍵。”

這是官方給出的架構(gòu)演變圖


image.png

從圖中看出,各種架構(gòu)對(duì)應(yīng)的服務(wù)數(shù)量了,dubbo接口也不是一定要是使用的?,F(xiàn)在的公司,一般規(guī)模稍微大點(diǎn)的都會(huì)用到Dubbo,相信在學(xué)習(xí)了Dubbo接口,應(yīng)聘時(shí)能更勝一籌。

三、Dubbo架構(gòu)圖解析

image.png

Provider 是服務(wù)的生產(chǎn)者,用于提供服務(wù)的;在服務(wù)啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)。
Container是服務(wù)容器,Container負(fù)責(zé)啟動(dòng),加載,運(yùn)行Provider,同時(shí)也監(jiān)控Provider并發(fā)送統(tǒng)計(jì)給Monitor(監(jiān)控)。
Consumer 是服務(wù)的消費(fèi)者,在啟動(dòng)時(shí)向注冊(cè)中心訂閱服務(wù),在收到注冊(cè)中心的通知后在有需要調(diào)用的服務(wù)的情況向Provider請(qǐng)求服務(wù)。同時(shí)也需要將調(diào)用情況統(tǒng)計(jì)給Monitor。
Registry 是注冊(cè)中心,負(fù)責(zé)服務(wù)的發(fā)現(xiàn)和服務(wù)的推送。
Monitor監(jiān)控服務(wù)的消費(fèi)生產(chǎn)情況,并進(jìn)行治理調(diào)度。

四、Dubbo接口快速入手

Dubbo 采用全 Spring 配置方式,透明化接入應(yīng)用,對(duì)應(yīng)用沒(méi)有任何 API 侵入,只需用 Spring 加載 Dubbo 的配置即可,Dubbo 基于 Spring 的 Schema 擴(kuò)展進(jìn)行加載。

使用IDEA環(huán)境(你懂的)創(chuàng)建Maven工程

pom.xml 引入

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
即可,稍后我會(huì)給出詳細(xì)的源代碼

新建一個(gè)DemoService,這里定義一個(gè)公共接口

image.png

新建一個(gè)實(shí)現(xiàn)類(Provider提供的服務(wù))

image.png

接下來(lái)就是Provider和Consumer的配置了
Consumer.xml


image.png

Provider.xml


image.png

消費(fèi)方的Spring加載類
image.png

生產(chǎn)者的Spring加載類


image.png

先啟動(dòng)Provider 再啟動(dòng)Consumer(注意在命令行參數(shù)中添加-Djava.net.preferIPv4Stack=true )只使用ipv4
Provider日志


image.png

Consumer日志


image.png

首先注冊(cè)中心收到廣播說(shuō) 192.168.10.688:20888有什么服務(wù),這個(gè)時(shí)候生產(chǎn)者處于監(jiān)聽狀態(tài),然后Consumer去注冊(cè)中心訂閱,注冊(cè)中心通知Consumer,當(dāng)Consumer請(qǐng)求后進(jìn)行處理,最后返回結(jié)果,斷開連接,輸出hello world。

最后附上源碼地址https://github.com/tianrandailove/Dubbo.git

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • Dubbo是什么 Dubbo是Alibaba開源的分布式服務(wù)框架,它最大的特點(diǎn)是按照分層的方式來(lái)架構(gòu),使用這種方式...
    Coselding閱讀 17,447評(píng)論 3 196
  • 庖丁解牛,從源碼角度來(lái)深入tcp/ip。----《TCP/IP詳解 卷2:實(shí)現(xiàn)》。 一、簡(jiǎn)介和介紹 ip協(xié)議的是t...
    小胖子善軒閱讀 4,093評(píng)論 1 6
  • 3 (一) “哭什么呢?”一個(gè)高高瘦瘦的中年婦女不耐煩地嚷嚷道?!安痪退懒藗€(gè)人么!” 她...
    小小念棠叫妮妮閱讀 246評(píng)論 0 1
  • 我害怕這個(gè)字眼。 自己經(jīng)歷了五年的異地戀,深刻的體會(huì)到了這三個(gè)字所代表的艱辛。兩千多天異地相思之苦,給我最痛的...
    當(dāng)個(gè)逗比挺開心閱讀 406評(píng)論 0 0

友情鏈接更多精彩內(nèi)容