新聞中心
[[399195]]
本文轉(zhuǎn)載自微信公眾號(hào)「飯談編程」,作者稀飯下雪。轉(zhuǎn)載本文請(qǐng)聯(lián)系飯談編程公眾號(hào)。

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、網(wǎng)站設(shè)計(jì)、城區(qū)網(wǎng)絡(luò)推廣、小程序制作、城區(qū)網(wǎng)絡(luò)營(yíng)銷、城區(qū)企業(yè)策劃、城區(qū)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供城區(qū)建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
為啥玩dubbo
先說(shuō)個(gè)大前提,我們公司的游戲一直是單服模式,隨著游戲生命周期的延伸,后續(xù)都會(huì)出現(xiàn)多種跨服功能,在以前,跨服功能的開(kāi)發(fā)都得基于netty,通過(guò)跨服協(xié)議通知到遠(yuǎn)程服觸發(fā)相應(yīng)邏輯,基本跨服功能開(kāi)發(fā)所占用的時(shí)長(zhǎng)是本服功能開(kāi)發(fā)的三倍左右,開(kāi)發(fā)效率是比較低的。
為了解決跨服功能開(kāi)發(fā)效率低的問(wèn)題,我最近奉命搞RPC和服務(wù)化,所以研究了下dubbo,基本上是將dubbo里里外外艸了一遍,比較熟悉了,公司項(xiàng)目RPC和服務(wù)化的基礎(chǔ)也搭的差不多了,沒(méi)猜錯(cuò)的話,后續(xù)就是給同事們分享下dubbo的表和里,反正也是要分享的, 先寫個(gè)教程先好了,到時(shí)候可以直接發(fā)給他們看。
因?yàn)閐ubbo框架比較大,所以打算寫成一個(gè)系列,想學(xué)dubbo的可以關(guān)注我,后續(xù)應(yīng)該會(huì)拓展講講我們公司基礎(chǔ)框架的RPC和服務(wù)化的設(shè)計(jì),有興趣討論的也可以找我。
說(shuō)個(gè)好笑的事情,剛開(kāi)始接觸dubbo的時(shí)候,發(fā)音都是嘟波,還和同事們爭(zhēng)執(zhí)了下,最終查了下,發(fā)現(xiàn)是達(dá)波。
該篇文章是dubbo文章的第一篇,先教大家將dubbo跑起來(lái),別以為只是啟動(dòng)那么簡(jiǎn)單,還是挺多步驟的,包括啟動(dòng)注冊(cè)中心、后臺(tái)啟動(dòng)等多個(gè)步驟,有興趣學(xué)dubbo的跟著玩起來(lái)吧!
dubbo結(jié)構(gòu)如何
Provider: 暴露服務(wù)的服務(wù)提供方,其實(shí)就是一個(gè)提供了服務(wù)的服。
Consumer: 調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方,也就是服務(wù)的調(diào)用方。
Registry: 服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心,服務(wù)的調(diào)用方和注冊(cè)方溝通的渠道、
Monitor: 統(tǒng)計(jì)服務(wù)的調(diào)用次調(diào)和調(diào)用時(shí)間的監(jiān)控中心。
Container: 服務(wù)容器,其實(shí)沒(méi)必要抽出的概念。
簡(jiǎn)單說(shuō)下調(diào)用關(guān)系:
- 服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。
- 服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。
- 服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)。
- 注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)連接推送變更數(shù)據(jù)給消費(fèi)者。
- 服務(wù)消費(fèi)者,從提供者地址列表中,基于負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行調(diào)用。
- 服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)發(fā)送統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。
將注冊(cè)中心跑起來(lái)
Zookeeper是啥
注冊(cè)中心有多種,這里選擇了Zookeeper,大概描述下Zookeeper,它是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開(kāi)源的實(shí)現(xiàn),是Hadoop和Hbase的重要組件。
作為一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等。
Zookeeper注冊(cè)中心能自動(dòng)刪除提供者信息,當(dāng)提供者重啟時(shí),能自動(dòng)恢復(fù)注冊(cè)數(shù)據(jù)。
部署Zookeeper
步驟1:
官網(wǎng)可下載:http://www.apache.org/dyn/closer.cgi/zookeeper/
步驟2:
下載后解壓,Zookeeper 的配置文件在 conf 目錄下,有 zoo_sample.cfg 和 log4j.properties,將zoo_sample.cfg 重命名成zoo.cfg,因?yàn)?Zookeeper 在啟動(dòng)時(shí)會(huì)找這個(gè)文件作為默認(rèn)配置文件。
說(shuō)說(shuō)zoo.cfg文件里面幾個(gè)重要的配置
- tickTime:這個(gè)時(shí)間是作為 Zookeeper 服務(wù)器之間或客戶端與服務(wù)器之間維持心跳的時(shí)間間隔,也就是每個(gè) tickTime 時(shí)間就會(huì)發(fā)送一個(gè)心跳。
- dataDir:顧名思義就是 Zookeeper 保存數(shù)據(jù)的目錄,默認(rèn)情況下,Zookeeper 將寫數(shù)據(jù)的日志文件也保存在這個(gè)目錄里。
- clientPort:這個(gè)端口就是客戶端連接 Zookeeper 服務(wù)器的端口,Zookeeper 會(huì)監(jiān)聽(tīng)這個(gè)端口,接受客戶端的訪問(wèn)請(qǐng)求。
步驟3:
運(yùn)行Zookeeper ,啟動(dòng)Zookeeper目錄下bin下的zkServer.cmd
啟動(dòng)之后一直開(kāi)著,不要關(guān)掉這個(gè)cmd,記得要在dubbo消費(fèi)者和提供者運(yùn)行之前就開(kāi)啟Zookeeper。
運(yùn)行成功后是這樣的
將管理后臺(tái)跑起來(lái)
dubbo-admin是啥
dubbo-admin是dubbo框架的管理后臺(tái),可以對(duì)注冊(cè)的服務(wù)(provider)和服務(wù)調(diào)用方(comsumer)進(jìn)行服務(wù)治理,包括路由、監(jiān)控、配置等功能;
dubbo一般都是使用Zookeeper來(lái)進(jìn)行管理服務(wù)注冊(cè),而dubbo-admin查看注冊(cè)了哪些服務(wù),因?yàn)椴榭捶?wù)需要從Zookeeper上查詢的,所以dubbo-admin需要依賴于Zookeeper;
安裝dubbo-admin
步驟1:
下載dubbo-admin工程源碼,地址 https://github.com/apache/dubbo-admin
步驟2:
使用idea打開(kāi)該工程,啟動(dòng)入口類
步驟3:
啟動(dòng)后,默認(rèn)訪問(wèn) http://localhost:7001/
賬號(hào)和密碼都輸入root即可進(jìn)入
最終可以看到該管理頁(yè)面。
將dubbo服務(wù)跑起來(lái)
步驟1:
從github上clone工程源碼 https://github.com/apache/dubbo 到本地
使用Idea導(dǎo)入源碼,并切換到3.0版本
安裝下各種依賴
步驟2:
看dubbo-demo模塊,直接看xml模塊,內(nèi)部提供了consumer和provider的測(cè)試用例
xml模塊中,consumer和provider模塊中resources底下都有個(gè)xml配置,描述了服務(wù)暴露和服務(wù)訂閱的相關(guān)詳情。
服務(wù)注冊(cè)方
服務(wù)訂閱方
直接啟動(dòng)對(duì)應(yīng)的Application,啟動(dòng)成功后應(yīng)該可以看到RPC相關(guān)調(diào)用的日志了。
啟動(dòng)提供方
啟動(dòng)訂閱方
通過(guò)程序可以看出,在訂閱方一直不斷的去調(diào)用提供方的服務(wù)
步驟3:
查看admin后臺(tái),可以看到
admin后臺(tái)已經(jīng)有了相關(guān)記錄,這個(gè)時(shí)候我們便可以通過(guò)admin后臺(tái)進(jìn)行服務(wù)的治理了。
總結(jié)
dubbo目前就這樣跑起來(lái)了,相信看完應(yīng)該都會(huì)心里留了幾個(gè)疑問(wèn),比如訂閱方是怎么找到注冊(cè)方的,admin后臺(tái)修改后怎么通知到訂閱方和注冊(cè)方的,訂閱方又是如何實(shí)現(xiàn)遠(yuǎn)程方法調(diào)用的,別急,關(guān)注我,下篇文章將從源碼分析dubbo,為你解開(kāi)一個(gè)個(gè)疑惑。
網(wǎng)頁(yè)名稱:一起玩Dubbo,先入個(gè)門
本文地址:http://m.5511xx.com/article/dpeesjh.html


咨詢
建站咨詢
