日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分布式服务框架 dubbo/dubbox 入门示例

發(fā)布時間:2025/3/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式服务框架 dubbo/dubbox 入门示例 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

dubbo是一個分布式的服務(wù)架構(gòu),可直接用于生產(chǎn)環(huán)境作為SOA服務(wù)框架。

官網(wǎng)首頁:http://dubbo.io/?,官方用戶指南?http://dubbo.io/User+Guide-zh.htm上面的幾張圖畫得不錯,完全可以當(dāng)做SOA架構(gòu)的學(xué)習(xí)資料

淘寶將這個項目開源出來以后,得到了不少同行的支持,包括:

當(dāng)當(dāng)網(wǎng)的擴(kuò)展版本dubbox?:https://github.com/dangdangdotcom/dubbox

京東的擴(kuò)展版本jd-hydra:?http://www.oschina.net/p/jd-hydra

不過,略有遺憾的是,據(jù)說在淘寶內(nèi)部,dubbo由于跟淘寶另一個類似的框架HSF(非開源)有競爭關(guān)系,導(dǎo)致dubbo團(tuán)隊已經(jīng)解散(參見http://www.oschina.net/news/55059/druid-1-0-9?中的評論),反到是當(dāng)當(dāng)網(wǎng)的擴(kuò)展版本仍在持續(xù)發(fā)展,墻內(nèi)開花墻外香。

不管如何,能在阿里、當(dāng)當(dāng)、京東這些大型網(wǎng)站正式使用的框架,總不至于差到哪里去。

本文下面的示例均基于當(dāng)當(dāng)?shù)膁ubbox版本,由于dubbox并沒向maven提交編譯后的jar包,所以只能從github clone代碼到本地編譯得到j(luò)ar包。

?

編譯及測試步驟:(以下步驟全在windows環(huán)境中完成)

1.?本機先安裝github on Windows的客戶端,將在path路徑中,把git.exe加進(jìn)去

2.?命令行下?git clone?https://github.com/dangdangdotcom/dubbox?把代碼拉到本地

3.?mvn install -Dmaven.test.skip=true 跳過測試編譯

4.?在本機安裝一個zookeeper,參考zoo.cfg如下:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/java/zookeeper-3.4.6/data
dataLogDir=D:/java/zookeeper-3.4.6/log
clientPort=2181
server.1=localhost:2287:3387

然后輸入 bin/zkServer.cmd 啟用zookeeper

5.?intellij Idea中導(dǎo)入源碼

6.?運行?\dubbox\dubbo-demo\dubbo-demo-provider\src\test\java\com\alibaba\dubbo\demo\provider\DemoProvider.java?

把服務(wù)提供方跑起來,成功后,可以在ZK里,用 ls / 看下,會發(fā)現(xiàn)zk里多出了一個dubbo的節(jié)點,所有服務(wù)全注冊在這里了

7.?運行\(zhòng)dubbox\dubbo-demo\dubbo-demo-consumer\src\test\java\com\alibaba\dubbo\demo\consumer\DemoConsumer.java

服務(wù)消費方調(diào)用測試,可以看console里的輸出

8.?運行\(zhòng)dubbox\dubbo-demo\dubbo-demo-consumer\src\test\java\com\alibaba\dubbo\demo\consumer\RestClient.java

跑一下rest調(diào)用

9.?瀏覽器訪問?http://localhost:8888/services/users/100.xml 或?http://localhost:8888/services/users/100.json

?

dubbox官方的示例,雖然已經(jīng)很簡單了,但是對于初次接觸的人來講,仍然略顯復(fù)雜,下面的代碼在其基礎(chǔ)上簡化了一下:

一、先定義服務(wù)接口及傳輸對象DTO

項目結(jié)構(gòu)如下

代碼:

User.java

+ View Code

UserService.java

+ View Code

UserRestService.java

+ View Code

pom.xml

?View Code

?

二、定義服務(wù)生產(chǎn)者(即:服務(wù)接口的實現(xiàn)方)

UserServiceImpl.java

+ View Code

UserRestServiceImpl.java

+ View Code

DemoProvider.java

+ View Code

配置文件:resources\META-INF\spring\dubbo-demo-provider.xml

?View Code

pom.xml

?View Code

測試時,運行DemoProvider中的main方法即可啟動服務(wù),所有服務(wù)注冊在ZooKeeper,層次結(jié)構(gòu)類似下面這樣:

/dubbo/dubbo/yjmyzz.dubbo.demo.api.UserRestService/dubbo/yjmyzz.dubbo.demo.api.UserRestService/providers/dubbo/yjmyzz.dubbo.demo.api.UserRestService/configurators/dubbo/yjmyzz.dubbo.demo.api.UserService/dubbo/yjmyzz.dubbo.demo.api.UserService/providers/dubbo/yjmyzz.dubbo.demo.api.UserService/configurators

?

三、服務(wù)消費方

DemoConsumer.java

+ View Code

配置文件:resources\META-INF\spring\dubbo-hello-consumer.xml

?View Code

pom.xml

?View Code

其它注意事項:

dubbo構(gòu)架中,zk充著“服務(wù)注冊中心”的角色,所以生產(chǎn)者與消費者的xml配置文件中,都要配置zk地址,如果zk采用集群部署時,配置寫法參考下面這樣:

<dubbo:registry address="zookeeper://172.28.*.102:2181?backup=172.28.*.102:2182,172.28.*.102:2183"/>

?

dubbo還有一個管理界面,用于服務(wù)治理,包括啟用/禁用服務(wù),設(shè)置服務(wù)的路由規(guī)則(即:A地址的Consumer直接調(diào)用B機器的Provider,而不是由負(fù)載均衡算法分配)等等。

使用方法:將dubbo-admin這個項目編譯成war包后,部署到j(luò)etty或其它兼容web server即可(當(dāng)然要修改\WEB-INF\dubbo.properties里zk的地址)

部署完成后,訪問管理界面時,默認(rèn)用戶名,密碼均是root。?

另外dubbo-monitor項目用于性能監(jiān)控,結(jié)合監(jiān)控產(chǎn)生的數(shù)據(jù),再套上一些圖表展示的框架,可以用圖表方式直觀展示各種指標(biāo)。

注:官網(wǎng)給出的dubbo-admin采用的webx架構(gòu)有點老,而且除了淘寶之外,幾乎沒人在用,dubbo-monitor-simple界面也比較古樸,所以社區(qū)也人對其做了擴(kuò)展,詳情參考另一篇博客dubbox 的各種管理和監(jiān)管

2016-02-25:dubbox依賴的spring雖然升級成3.x了,但版本還是有點低,spring都已經(jīng)4.x了,為了方便我fork了一份,升級成spring 4.x 同時增加了log4j2的日志組件支持,詳情見:dubbox升級spring到4.x及添加log4j2支持

?

參考文章:

http://shiyanjun.cn/archives/341.html

http://blog.csdn.net/wilsonke/article/details/39896595

http://www.dataguru.cn/thread-464197-1-1.html

http://www.iteye.com/magazines/103

http://dangdangdotcom.github.io/dubbox/rest.html

http://dangdangdotcom.github.io/dubbox/demo.html

http://blog.csdn.net/hzzhoushaoyu/article/details/43273099

作者:菩提樹下的楊過
出處:http://yjmyzz.cnblogs.com?

from:?http://www.cnblogs.com/yjmyzz/p/dubbox-demo.html

總結(jié)

以上是生活随笔為你收集整理的分布式服务框架 dubbo/dubbox 入门示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。