分布式商城項目--dubbo服務的發(fā)布和引用。

dubbo服務需要zookeeper服務的支持,之前我們已經(jīng)介紹過zookeeper的安裝配置,這里就不在贅述

成都創(chuàng)新互聯(lián)是一家專業(yè)提供巴楚企業(yè)網(wǎng)站建設,專注與網(wǎng)站建設、做網(wǎng)站、H5建站、小程序制作等業(yè)務。10年已為巴楚眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

1.啟動zookeeper

分布式商城項目--dubbo 服務的發(fā)布和引用。

2. Provider 服務提供者 service 配置發(fā)布到 dubbo

在本系統(tǒng)中的服務提供者(Provider) 由 tyh-manager-service 提供。 現(xiàn)在需要將此服務
發(fā)布到 dubbo 中, 并在 zookeeper 中進行注冊。
在 service 工程中需要增加對 dubbo 和 zookeeper 的依賴包。 增加依賴包在目前的項目
結構中需要先在 ycshop-parent 父工程中統(tǒng)一進行引用版本的管理。
父工程中的引用:

<properties>
    <dubbo.version>2.6.2</dubbo.version>
    <zookeeper.version>3.4.13</zookeeper.version>
    <zkclient.version>0.1</zkclient.version>
    <curator-versioin>2.8.0</curator-versioin>
</properties>
<!-- dubbo 相關 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>${dubbo.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>${zookeeper.version}</version>
</dependency>
<dependency>
    <groupId>com.github.sgroschupf</groupId>
    <artifactId>zkclient</artifactId>
    <version>${zkclient.version}</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-framework</artifactId>
    <version>${curator-versioin}</version>
</dependency>
<dependency>
    <groupId>org.apache.curator</groupId>
    <artifactId>curator-recipes</artifactId>
    <version>${curator-versioin}</version>
</dependency>

在 ycshop-manager-service 工程中增加對 dubbo 和 zookeeper 的依賴包引用。具體依賴如下:

<!-- dubbo 相關依賴 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <!-- 排除依賴。 處理對 spring 引用版本沖突問題 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.jboss.netty</groupId>
                    <artifactId>netty</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- zookeeper 的客戶端, 要連接 zookeeper, 需要把以下兩個 jar 包加進來 -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
        </dependency>
spring-service.xml 配置

在 spring-service.xml 配置文件中增加一下配置:

<!-- 使用 dubbo 發(fā)布服務 -->
    <!-- 服務提供者應用信息, 用于計算依賴關系 -->
    <dubbo:application name="ycshop-manager" />
    <!-- 注冊中心地址。 使用 zookeeper 作為注冊中心, 地址為 2.1 中所啟動的 zookeeper 地址。 還可以是配置多個注冊中心, 
        在 address 中使用逗號分割 -->
    <dubbo:registry protocol="zookeeper" address="47.100.224.4:2181" />
    <!-- 用 dubbo 協(xié)議在 20880 端口暴露服務 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <!-- 聲明需要暴露的服務接口,ref 鏈接實現(xiàn)對象。 adminServiceImpl 這里是使用 自動掃描后默認的服務 bean 名稱 -->
    <dubbo:service interface="cn.yuechenc.manager.interfaces.UserService"
        ref="userServiceImpl" />

在 XML 文件中增加命名空間的引用:
分布式商城項目--dubbo 服務的發(fā)布和引用。
配置文件說明:
&lt;dubbo:application name="tyh-manager" /&gt;:是用來配置在注冊中心的名字, 標識我
們當前應用的一個名稱, 可以隨便起, 但是最好不要跟其他的應用重復, 最好跟你的工程名
相對應。
dubbo:registry protocol="zookeeper" address="47.100.224.4:2181": 用于配置注冊中心的地址。 這里使用 zookeeper 協(xié)議, 并且地址為 47.100.224.4(zookeeper的安裝服務器地址。 ) 2181: zookeeper 默認的端口號(可以在 zookeeper 中進行配置)
&lt;dubbo:protocol name="dubbo" port="20880" /&gt;: 協(xié)議配置, 用于配置提供服務的協(xié)議信息, 協(xié)議由提供方指定, 消費方被動接受。 這里使用 dubbo 協(xié)議, 從 20880 端口向注冊中心暴露服務提供方地址。

此時我們還無法啟動,因為項目里缺少cn.yuechenc.manager.interfaces.UserService這個接口,所以啟動測試留到下一篇介紹

3. Consumer 服務消費者 web 工程引用 dubbo 服務

在本系統(tǒng)中 ycshop-manager-web 工程作為服務的消費者。 現(xiàn)在 web 工程需要通過 dubbo服務來引用 service 工程所提供的服務。

引用 dubbo 和 zookeeper 相關依賴包

在 ycshop-manager-web 工程中添加對 dubbo 和 zookeeper 相關的依賴包。 Pom.xml 文件增加以下內容:

<!-- dubbo 相關依賴 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <!-- 排除依賴 -->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework</groupId>
                    <artifactId>spring</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.jboss.netty</groupId>
                    <artifactId>netty</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- zookeeper 的客戶端, 你要連接 zookeeper, 需要把以下兩個 jar 包加進 來 -->
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </dependency>
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-framework</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
        </dependency>
        <!-- JSON 相關 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
    </dependencies>
spring-mvc.xml 配置

在 spring-mvc.xml 文件中增加以下配置:

<!-- 引用 dubbo 服務 -->
    <dubbo:application name="tyh.manager-web" />
    <dubbo:registry protocol="zookeeper" address="47.100.224.4:2181" />
    <dubbo:reference interface="cn.yuechenc.manager.interfaces.UserService"
        id="userService" />

配置說明:
&lt;dubbo:application name="tyh.manager-web" /&gt;:是用來配置在注冊中心的名字, 標識我們當前應用的一個名稱, 可以隨便起, 但是最好不要跟其他的應用重復, 最好跟你的工程名相對應。
dubbo:registry:注冊中心的地址
dubbo:reference: 服務所暴露的服務。 需要和服務引用同樣的接口。 (所以在 MVC 工程中需要引用 ycshop-manager-interfaces 接口)

同樣,這時候還不能啟動,啟動測試我們下節(jié)再介紹。

本文標題:分布式商城項目--dubbo服務的發(fā)布和引用。
當前鏈接:http://www.muchs.cn/article46/pieghg.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、建站公司、外貿建站、微信小程序、網(wǎng)站收錄用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司