Dubbo学习(三)服务调用

来源:互联网 发布:外贸数据应用 编辑:程序博客网 时间:2024/06/04 22:30

上篇说了如何进行服务的发布,这篇来说一说服务调用

  1. 代码结构

这里写图片描述
2.pom.xml

<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.levin.dubbo.client</groupId>    <artifactId>dubbo-client</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>dubbo-client</name>    <url>http://maven.apache.org</url>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>    </properties>    <dependencies>        <dependency>            <groupId>commons-logging</groupId>            <artifactId>commons-logging</artifactId>            <version>1.1.1</version>        </dependency>        <dependency>            <groupId>com.alibaba</groupId>            <artifactId>dubbo</artifactId>            <version>2.5.3</version>        </dependency>        <dependency>            <groupId>org.javassist</groupId>            <artifactId>javassist</artifactId>            <version>3.18.1-GA</version>        </dependency>        <dependency>            <groupId>log4j</groupId>            <artifactId>log4j</artifactId>            <version>1.2.15</version>            <exclusions>                <exclusion>                    <groupId>com.sun.jdmk</groupId>                    <artifactId>jmxtools</artifactId>                </exclusion>                <exclusion>                    <groupId>com.sun.jmx</groupId>                    <artifactId>jmxri</artifactId>                </exclusion>                <exclusion>                    <artifactId>jms</artifactId>                    <groupId>javax.jms</groupId>                </exclusion>                <exclusion>                    <artifactId>mail</artifactId>                    <groupId>javax.mail</groupId>                </exclusion>            </exclusions>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>4.2.2.RELEASE</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-api</artifactId>            <version>1.7.6</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-log4j12</artifactId>            <version>1.6.1</version>        </dependency>        <dependency>            <groupId>com.github.sgroschupf</groupId>            <artifactId>zkclient</artifactId>            <version>0.1</version>        </dependency>        <dependency>            <groupId>org.apache.zookeeper</groupId>            <artifactId>zookeeper</artifactId>            <version>3.4.5</version>            <type>pom</type>        </dependency>        <dependency>            <groupId>com.levin.dubbo.server</groupId>            <artifactId>dubbo-server</artifactId>            <version>0.0.1-SNAPSHOT</version>        </dependency>    </dependencies></project>

Consumer.java

package com.levin.dubbo.client.dubbo_client;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.levin.dubbo.server.Provider;public class Consumer {    public static void main(String[] args) {        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationConsumer.xml"});        context.start();        // 获取服务器那边的bean        Provider provider = (Provider) context.getBean("provider");        System.out.println(provider.sayHello());    }}

applicationConsumer.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:dubbo="http://code.alibabatech.com/schema/dubbo"    xsi:schemaLocation="http://www.springframework.org/schema/beans          http://www.springframework.org/schema/beans/spring-beans.xsd          http://code.alibabatech.com/schema/dubbo          http://code.alibabatech.com/schema/dubbo/dubbo.xsd          ">    <!-- consumer application name -->    <dubbo:application name="dubbo-client" />    <!-- registry address, used for consumer to discover services -->    <dubbo:registry address="zookeeper://192.168.1.201:2181" />    <dubbo:consumer timeout="5000" />    <!-- which service to consume? -->    <dubbo:reference id="provider" interface="com.levin.dubbo.server.Provider" /></beans>  

运行Consumer中的Main方法,Consumer会从registry上发现提供者的地址,并且与提供者建立长连接调用远程方法并且返回。
如果调用后成功打印

The first Dubbo Service
那么说明服务调用已经可以正常使用了。
下篇说一下Dubbo的服务分组

0 0
原创粉丝点击