原文地址:
https://my.oschina.net/zhengweishan/blog/693163
Dubbo與Zookeeper、SpringMVC整合和使用
osc碼雲托管地址:http://git.oschina.net/zhengweishan/dubbo
一、軟件環境
1、zookeeper 下載地址:https://zookeeper.apache.org/releases.html 我下載的版本是 zookeeper-3.4.8(只求穩定)
2、springMVC (maven方式引入,具體參看pom文件)
3、dubbo (maven方式引入,具體參看pom文件)
二、配置啟動zookeeper
將下載的zookeeper壓縮包,解壓到一個磁盤目錄上去,這里我指定的位置:E:\dubbo\zookeeper-3.4.8,我們可以通過啟動E:\dubbo\zookeeper-3.4.8\bin\zkServer.cmd直接啟動默認配置,默認端口為2181,首先我們需要把E:\dubbo\zookeeper-3.4.8\conf\zoo_sample.cfg,
文件復制一份並修改成zoo.cfg(zookeeper默認加載這個配置文件),
然后在修改打開E:\dubbo\zookeeper-3.4.8\conf\zoo.cfg,我們這里在指定一下數據目錄以及數據日志目錄:
啟動zookeeper,如下圖所示
三、創建項目
demo源碼托管地址:https://github.com/wesley5201314/dubbo
這里我搭建了五個項目,分別為dubbo(父工程),dubbo-api(這里只有接口,最終會打成jar),dubbo-provider(生產者,最終會打成war),dubbo-service(接口的實現都在這里,最終會被打成jar) ,dubbo_customer(消費者,最終會打成war)。他們之間的引用就請自己看源碼吧,不在做更多的解釋了。相信你們看到項目的結構也應該懂得他們之間的依賴關系。代碼就不全貼了,自己看https://github.com/wesley5201314/dubbo
四、dubbo管理平台搭建
我這里使用的是dubbo-admin-2.5.3.war,下載地址:http://pan.baidu.com/s/1eSnuqEQ
下載之后直接放到tomcat運行就可以了(這里最好要單獨放一個tomcat中)。運行之后如圖:
用戶密碼默認是root,root.
登錄之后:
這里顯示的服務數,應用數,提供者數,消費者數都為零。因為我們還沒有發布服務,好了去我們的開發工具中發布服務吧,生產者,消費者要同事部署,最好部署在不同的tomcat下,修改下tomcat的端口。
項目部署之后,顯示如下:
這里的兩個應用就是我們的生產者,消費者。
服務(這里的截圖可能與源碼中的服務名字不一樣,提交到github的時候我做了修改,請大家已自己運行的效果為主啊)
應用
提供者
消費者:
然后地址欄輸入地址http://localhost:9080/dubbo_web1/testSayDubbo(源碼中已經修改項目名字為dubbo_customer,請根據源碼來,源碼中服務的實現也做了修改,請都以源碼為主,這里的都是演示,其實源碼也是演示啊)
成功調用我們提供的服務。
OK。至此一切完畢,后續繼續說有關dubbo的東西,例如權重的問題:這個你們可以自己試試吧生產者在打包一份,並且修改其中服務的實現,部署到另一台服務器上,在dubbo管理平台設置服務的權重,然后你們不停地刷新消費者應用去掉這個服務,你就可以更具出現的結果,判斷調用那個的比較多了。
注意:
1,部署dubbo-admin-2.5.3.war 的時候需要先啟動zookeeper,不然啟動時候會等待。。
2,部署dubbo_customer、dubbo_provider 的時候報錯
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
是由於spring-web相關jar包未加載