掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
本文轉(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
先說個(gè)大前提,我們公司的游戲一直是單服模式,隨著游戲生命周期的延伸,后續(xù)都會(huì)出現(xiàn)多種跨服功能,在以前,跨服功能的開發(fā)都得基于netty,通過跨服協(xié)議通知到遠(yuǎn)程服觸發(fā)相應(yīng)邏輯,基本跨服功能開發(fā)所占用的時(shí)長(zhǎng)是本服功能開發(fā)的三倍左右,開發(fā)效率是比較低的。
為了解決跨服功能開發(fā)效率低的問題,我最近奉命搞RPC和服務(wù)化,所以研究了下dubbo,基本上是將dubbo里里外外艸了一遍,比較熟悉了,公司項(xiàng)目RPC和服務(wù)化的基礎(chǔ)也搭的差不多了,沒猜錯(cuò)的話,后續(xù)就是給同事們分享下dubbo的表和里,反正也是要分享的, 先寫個(gè)教程先好了,到時(shí)候可以直接發(fā)給他們看。
因?yàn)閐ubbo框架比較大,所以打算寫成一個(gè)系列,想學(xué)dubbo的可以關(guān)注我,后續(xù)應(yīng)該會(huì)拓展講講我們公司基礎(chǔ)框架的RPC和服務(wù)化的設(shè)計(jì),有興趣討論的也可以找我。
說個(gè)好笑的事情,剛開始接觸dubbo的時(shí)候,發(fā)音都是嘟波,還和同事們爭(zhēng)執(zhí)了下,最終查了下,發(fā)現(xiàn)是達(dá)波。
該篇文章是dubbo文章的第一篇,先教大家將dubbo跑起來,別以為只是啟動(dòng)那么簡(jiǎn)單,還是挺多步驟的,包括啟動(dòng)注冊(cè)中心、后臺(tái)啟動(dòng)等多個(gè)步驟,有興趣學(xué)dubbo的跟著玩起來吧!
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í)沒必要抽出的概念。
簡(jiǎn)單說下調(diào)用關(guān)系:
Zookeeper是啥
注冊(cè)中心有多種,這里選擇了Zookeeper,大概描述下Zookeeper,它是一個(gè)分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby一個(gè)開源的實(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)配置文件。
說說zoo.cfg文件里面幾個(gè)重要的配置
步驟3:
運(yùn)行Zookeeper ,啟動(dòng)Zookeeper目錄下bin下的zkServer.cmd
啟動(dòng)之后一直開著,不要關(guān)掉這個(gè)cmd,記得要在dubbo消費(fèi)者和提供者運(yùn)行之前就開啟Zookeeper。
運(yùn)行成功后是這樣的
dubbo-admin是啥
dubbo-admin是dubbo框架的管理后臺(tái),可以對(duì)注冊(cè)的服務(wù)(provider)和服務(wù)調(diào)用方(comsumer)進(jìn)行服務(wù)治理,包括路由、監(jiān)控、配置等功能;
dubbo一般都是使用Zookeeper來進(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打開該工程,啟動(dòng)入口類
步驟3:
啟動(dòng)后,默認(rèn)訪問 http://localhost:7001/
賬號(hào)和密碼都輸入root即可進(jìn)入
最終可以看到該管理頁(yè)面。
將dubbo服務(wù)跑起來
步驟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)訂閱方
通過程序可以看出,在訂閱方一直不斷的去調(diào)用提供方的服務(wù)
步驟3:
查看admin后臺(tái),可以看到
admin后臺(tái)已經(jīng)有了相關(guān)記錄,這個(gè)時(shí)候我們便可以通過admin后臺(tái)進(jìn)行服務(wù)的治理了。
dubbo目前就這樣跑起來了,相信看完應(yīng)該都會(huì)心里留了幾個(gè)疑問,比如訂閱方是怎么找到注冊(cè)方的,admin后臺(tái)修改后怎么通知到訂閱方和注冊(cè)方的,訂閱方又是如何實(shí)現(xiàn)遠(yuǎn)程方法調(diào)用的,別急,關(guān)注我,下篇文章將從源碼分析dubbo,為你解開一個(gè)個(gè)疑惑。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流