1. 程式人生 > >釋出Dubbo服務之消費者(dubbo-demo-consumer)

釋出Dubbo服務之消費者(dubbo-demo-consumer)

新建maven模組與 《釋出Dubbo服務》部落格一致 目錄結構

在這裡插入圖片描述 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion
>
4.0.0</modelVersion> <groupId>com.zyf</groupId> <artifactId>dubbo-demo-consumer</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <groupId>com.alibaba</groupId> <
artifactId
>
dubbo</artifactId> <version>2.6.0</version> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </
dependency
>
<dependency> <groupId>org.apache.curator</groupId> <artifactId>curator-framework</artifactId> <version>4.0.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.46</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.25</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.0.35.Final</version> </dependency> </dependencies> </project>

ProviderService .java

package com.zyf.service;

public interface ProviderService {
    public String sayHello(String name);
}

dubbo配置檔案(dubbo-demo-consumer.xml)

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

    <!-- 消費方應用名稱,用於計算依賴關係,不是匹配條件,不要與提供方名稱一樣  -->
    <dubbo:application name="demo-consumer"/>

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

    <!-- 生成遠端服務代理,可以與本地bean一樣使用  check屬性,啟動時候是否檢查 一般設定成false 啟動時候不檢查
     interface:提供者(dubbodemoprovider中的dubbo配置檔案中)暴露的服務介面
     -->
    <dubbo:reference id="demoProviderService" check="false" interface="com.zyf.service.ProviderService"/>

</beans>

ConsumerTest.java

import com.zyf.service.ProviderService;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.io.IOException;

public class ConsumerTest {

    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"dubbo-demo-consumer.xml"});
        context.start();
        ProviderService providerService = (ProviderService) context.getBean("demoProviderService");
        String result = providerService.sayHello("你好");
        System.out.println("遠端呼叫的結果:"+result);
        try {
            System.in.read();
        } catch (IOException e) {

            e.printStackTrace();
        }
        context.close();
    }
}

啟動zookeeper服務 再執行提供者 在這裡插入圖片描述 啟動Dubbo Admin管理控制檯 可以看到有提供者但是還沒消費者 在這裡插入圖片描述 再執行消費者 在這裡插入圖片描述 在這裡插入圖片描述 這裡返回的結果就是呼叫提供者所返回的: 在這裡插入圖片描述 這下可以從Dubbo Admin管理控制檯看到消費者了: 在這裡插入圖片描述