Dubbo簡(jiǎn)介
Dubbo是阿里巴巴開源的一個(gè)分布式服務(wù)框架米碰,致力于提供高性能和透明化的RPC遠(yuǎn)程服務(wù)調(diào)用方案,以及SOA服務(wù)化治理方案虐译。
Dubbo提供基于接口的透明的遠(yuǎn)程過程調(diào)用吴趴,支持多種協(xié)議漆诽,包括Dubbo、RMI锣枝、WebService厢拭、Hessian、Http撇叁、Thrift供鸠、Redis、Memcached税朴。
Dubbo基于注冊(cè)中心的目錄服務(wù)回季,使服務(wù)消費(fèi)方能動(dòng)態(tài)的查找服務(wù)提供方正林,支持平滑的減少或增加服務(wù)器泡一。
Dubbo支持軟負(fù)載均衡、失敗容錯(cuò)觅廓、地址路由鼻忠、動(dòng)態(tài)配置、服務(wù)降級(jí)等集群功能杈绸。
實(shí)踐環(huán)境
win7操作系統(tǒng)+Dubbo+Spring+Zookeeper+Dubbo-admin帖蔓,Zookeeper作為服務(wù)注冊(cè)中心,dubbo-admin是dubbo的管理控制臺(tái)瞳脓。
Zookeeper安裝
到官網(wǎng) http://apache.org/dist/zookeeper 下載Zookeeper塑娇,用的是3.4.6版本。解壓下載包并復(fù)制conf目錄下的zoo_sample.cfg文件劫侧,并重命名為:zoo.cfg埋酬。
zoo.cfg文件參數(shù)說明參考:http://www.cnblogs.com/xiohao/p/5541093.html
啟動(dòng)zk哨啃,運(yùn)行bin目錄下zkServer.cmd,(linux:zkServer.sh)
安裝dubbo-admin應(yīng)用
下載dubbo-admin應(yīng)用(本例使用2.4.1版本):https://github.com/alibaba/dubbo
查看dubbo-admin的WEB-INF目錄的dubbo.properties文件写妥,里面配置連接zk的地址和管理員密碼拳球,如:
dubbo.registry.address=zookeeper://127.0.0.1:2181
把dubbo-admin的war包部署到tomcat的ROOT目錄,并啟動(dòng)tomcat珍特,訪問:http://localhost:8080祝峻,輸入管理員賬號(hào)和密碼就可以看到管理控制臺(tái)。
定義服務(wù)接口
定義服務(wù)接口HelloService扎筒,根據(jù)dubbo用戶指南莱找,該接口需單獨(dú)打包,在服務(wù)提供方和消費(fèi)方共享砸琅。
創(chuàng)建服務(wù)提供方應(yīng)用
本例中服務(wù)提供方為一個(gè)spring應(yīng)用宋距,實(shí)現(xiàn)HelloService接口。
導(dǎo)入依賴包:根據(jù)dubbo用戶指南症脂,缺省依賴包:log4j谚赎、spring、javassist诱篷、netty壶唤,由于本例使用zk作為服務(wù)注冊(cè)中心,所以也需導(dǎo)入zk的jar包和zkclient.jar棕所。
實(shí)現(xiàn)HelloService接口
配置dubbo服務(wù)
dubbo:protocol:指定協(xié)議闸盔,accepts設(shè)置最大連接數(shù)
dubbo:registry:服務(wù)注冊(cè)地址
dubbo:service:發(fā)布服務(wù),指定接口全稱和引用接口實(shí)現(xiàn)定義的bean
啟動(dòng)服務(wù)提供方應(yīng)用琳省,可以發(fā)布到tomcat迎吵,也可以使用main函數(shù)啟動(dòng)。
創(chuàng)建服務(wù)消費(fèi)方應(yīng)用
本例中服務(wù)消費(fèi)方為一個(gè)基于spring的web應(yīng)用针贬,調(diào)用服務(wù)提供方的HelloService服務(wù)击费。
導(dǎo)入依賴包:與服務(wù)提供方相同
調(diào)用遠(yuǎn)程服務(wù):使用Spring MVC定義一個(gè)controller,返回的數(shù)據(jù)格式為json
注冊(cè)服務(wù)消費(fèi)方:
dubbo:registry:注冊(cè)地址
timeout:指定服務(wù)調(diào)用的超時(shí)時(shí)長(zhǎng)
dubbo:reference:引用服務(wù)
啟動(dòng)服務(wù)消費(fèi)方應(yīng)用桦他,訪問:http://localhost:8082/dubbo-consumer/sayHello?name=zcl
可以在dubbo的管理控制臺(tái)中看到服務(wù)提供方和消費(fèi)方
這只是dubbo+zk的一個(gè)簡(jiǎn)單的入門實(shí)踐蔫巩,后面會(huì)系列介紹dubbo的各種協(xié)議實(shí)現(xiàn)以及集群部署等。