一、案例說(shuō)明
相信有很多小伙伴都知道,dubbo是一個(gè)分布式、高性能、透明化的RPC服務(wù)框架,提供服務(wù)自動(dòng)注冊(cè)、自動(dòng)發(fā)現(xiàn)等高效服務(wù)治理方案,dubbo的中文文檔也是非常全面的,如下圖所示:

二、Dubbo基礎(chǔ)介紹與環(huán)境搭建
??? 1.Dubbo基礎(chǔ)介紹
? ?? Dubbo管理架構(gòu)的變化如圖:

2.環(huán)境搭建
安裝zookeepe解壓(zookeeper-3.4.8.tar.gz)得到如下:

然后進(jìn)入conf將zoo_sample.cfg改名成zoo.cfg。并相關(guān)如下內(nèi)容:

該目錄為存放數(shù)據(jù)的目錄。然后啟動(dòng),在bin目錄下:


三、工程創(chuàng)建
1、搭建B工程
1.導(dǎo)入依賴

2.創(chuàng)建對(duì)象

3.創(chuàng)建服務(wù)

4.編寫(xiě)Dubbo的配置文件
位置我放在根目錄下dubbo/dubbo-server.xml,內(nèi)容如下:

5.編寫(xiě)Web.xml

6.啟動(dòng)tomcat
在控制臺(tái)中將會(huì)看到如下內(nèi)容:

可以看到,已經(jīng)將UserService服務(wù)注冊(cè)到zookeeper注冊(cè)中心,協(xié)議采用的是dubbo。
2、搭建A工程
1.拷貝基本文件
從b系統(tǒng)中拷貝User對(duì)象、UserService接口到a系統(tǒng)
.
2.編寫(xiě)Dubbo的配置文件

3.編寫(xiě)UserService測(cè)試用例

查看效果如下:
????????????? 可以看到,已經(jīng)查詢到10條數(shù)據(jù),那么,也就是說(shuō)A系統(tǒng)通過(guò)B系統(tǒng)提供的服務(wù)獲取到了數(shù)據(jù)。
3、解決代碼重復(fù)問(wèn)題
我們可以看到,在上面的案例中User實(shí)體和服務(wù)接口兩個(gè)項(xiàng)目都需要使用,代碼復(fù)用不高。那么我們可以將該部分代碼抽取出來(lái)打成包,以供所有系統(tǒng)使用。故可以在創(chuàng)建一個(gè)工程項(xiàng)目名為dubbo-b-api。然后將相關(guān)的代碼都放到該項(xiàng)目中,再在其它項(xiàng)目中導(dǎo)入該項(xiàng)目依賴即可。這也是我們?cè)谡鎸?shí)項(xiàng)目中應(yīng)該做的事情,因?yàn)檎{(diào)用方未必知道細(xì)節(jié)。