Dubbo與Zookeeper、SpringMVC整合和使用

 Dubbo與Zookeeper、SpringMVC整合和使用html

源碼github託管地址:https://github.com/wesley5201314/dubbogit

osc碼雲託管地址:http://git.oschina.net/zhengweishan/dubbogithub

1、軟件環境 

一、zookeeper 下載地址:https://zookeeper.apache.org/releases.html 我下載的版本是 zookeeper-3.4.8(只求穩定)web

二、springMVC (maven方式引入,具體參看pom文件)
三、dubbo (maven方式引入,具體參看pom文件)spring

2、配置啓動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默認加載這個配置文件),apache

而後在修改打開E:\dubbo\zookeeper-3.4.8\conf\zoo.cfg,咱們這裏在指定一下數據目錄以及數據日誌目錄:api

啓動zookeeper,以下圖所示tomcat

3、建立項目

demo源碼託管地址:https://github.com/wesley5201314/dubbo服務器

這裏我搭建了五個項目,分別爲dubbo(父工程),dubbo-api(這裏只有接口,最終會打成jar),dubbo-provider(生產者,最終會打成war),dubbo-service(接口的實現都在這裏,最終會被打成jar) ,dubbo_customer(消費者,最終會打成war)。他們之間的引用就請本身看源碼吧,不在作更多的解釋了。相信大家看到項目的結構也應該懂得他們之間的依賴關係。代碼就不全貼了,本身看https://github.com/wesley5201314/dubboapp

這裏放上兩個關鍵配置文件:dubbo_consumer.xml(很差意思這個項目拼錯了,大家本身修改下吧)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    
    <!-- 提供方應用信息,用於計算依賴關係 -->
    <dubbo:application name="test_consumer" />

    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />

    <!-- 聲明須要暴露的服務接口 -->
    <dubbo:reference interface="com.dubbo.demo.service.TestService" id="testService" check="false" />


</beans>

dubbo_provider.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
    xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://code.alibabatech.com/schema/dubbo
    http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

    <!-- 提供方應用信息,用於計算依賴關係 -->
    <dubbo:application name="test_provider" />

    <!-- 使用zookeeper註冊中心暴露服務地址 -->
    <dubbo:registry address="zookeeper://127.0.0.1:2181" />

    <!-- 用dubbo協議暴露服務 讓他本身制定端口 -->
    <dubbo:protocol name="dubbo" />

    <!-- 聲明須要暴露的服務接口 -->
    <dubbo:service interface="com.dubbo.demo.service.TestService" ref="testService" />

    <!-- 具體的實現bean -->
    <bean id="testService" class="com.dubbo.demo.service.impl.TestServiceImpl" />
</beans>

4、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管理平臺設置服務的權重,而後大家不停地刷新消費者應用去掉這個服務,你就能夠更具出現的結果,判斷調用那個的比較多了。

相關文章
相關標籤/搜索