Dubbo系列(3)_官方Demo说明

摘要:
1、 本文的目的是学习如何通过Dubbo的官方演示构建一个简单的Dubbo程序,包括服务器、客户端、界面等。
一、本文目的
    通过Dubbo的官方Demo介绍,学会搭建一个简单的Dubbo程序,包括服务端、客户端、接口等。
Demo地址:https://github.com/alibaba/dubbo/tree/master/dubbo-demo

二、Demo概况
     1、Demo分为三个项目
            a) dubbo-demo-api:服务接口,服务端和客户端都需要引用
b)dubbo-demo-provider:包含对服务接口的引用和实现
c)dubbo-demo-consumer:包含对服务接口的引用和使用
2、Demo三个项目的父项目是:dubbo-demo

三、Demo引用的Jar包说明
  1. JDK:1.6
  2. Dubbo版2号:2.5.4-SNAPSHOT
  3. Spring版本号:3.2.16.RELEASE<
  4. ZooKeeper版本号:3.3.3
  5. Jedis版本号:2.1.0
  6. Netty版本号:3.2.5.Final
  7. 其它:参考pom.xml     https://github.com/alibaba/dubbo/blob/master/pom.xml

四、Demo代码说明
1、服务接口:dubbo-demo-api
          本项目只包含一个接口及一个接口方法
1
2
3
4
5
6
7
packagecom.alibaba.dubbo.demo;
 
publicinterfaceDemoService {
 
    String sayHello(String name);
 
}

    2、服务实现:dubbo-demo-provider

         a) 服务端包含了对dubbo-demo-api的引用及实现

1
2
3
4
5
<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-demo-api</artifactId>
        <version>${project.parent.version}</version>
    </dependency>

 b) 配置文件(dubbo-demo-provider.xml

其中<dubbo:servcie> 定义一个对外提供的接口,通过ref关联到具体的实现代码

1
2
3
4
5
6
7
8
9
10
11
     
    <beanid="demoService"class="com.alibaba.dubbo.demo.provider.DemoServiceImpl"/>
     
    <dubbo:serviceinterface="com.alibaba.dubbo.demo.DemoService"ref="demoService"/>
     
</beans>

c) 实现代码(DemoServiceImpl)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
packagecom.alibaba.dubbo.demo.provider;
 
importjava.text.SimpleDateFormat;
importjava.util.Date;
 
importcom.alibaba.dubbo.demo.DemoService;
importcom.alibaba.dubbo.rpc.RpcContext;
 
publicclassDemoServiceImpl implementsDemoService {
 
    publicString sayHello(String name) {
        System.out.println("["+ newSimpleDateFormat("HH:mm:ss").format(newDate()) + "] Hello "+ name + ", request from consumer: "+ RpcContext.getContext().getRemoteAddress());
        return"Hello "+ name + ", response form provider: "+ RpcContext.getContext().getLocalAddress();
    }
     
}

    3、服务消费:dubbo-demo-consumer

  a) 消费端也包含了对dubbo-demo-api的引用
1
2
3
4
5
<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>dubbo-demo-api</artifactId>
        <version>${project.parent.version}</version>
    </dependency>

b) 配置文件(dubbo-demo-consumer.xml)

通过<dubbo:reference>引用一个服务接口,客户端使用远程接口方法就和调用本地方法一致

1
2
3
4
5
6
7
8
9

           c) 消费端调用代码:DemoAction.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
packagecom.alibaba.dubbo.demo.consumer;
 
importjava.text.SimpleDateFormat;
importjava.util.Date;
 
importcom.alibaba.dubbo.demo.DemoService;
 
publicclassDemoAction {
     
    privateDemoService demoService;
 
    publicvoidsetDemoService(DemoService demoService) {
        this.demoService = demoService;
    }
 
    publicvoidstart() throwsException {
        for(inti = 0; i < Integer.MAX_VALUE; i ++) {
            try{
                String hello = demoService.sayHello("world"+ i);
                System.out.println("["+ newSimpleDateFormat("HH:mm:ss").format(newDate()) + "] "+ hello);
            } catch(Exception e) {
                e.printStackTrace();
            }
            Thread.sleep(2000);
        }
    }
 
}










来自为知笔记(Wiz)


免责声明:文章转载自《Dubbo系列(3)_官方Demo说明》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇C/S系统实现两数求和(非阻塞+epoll+心跳包检测用户在线状况+滚动日志+配置文件.)8052定时器2的用法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Dubbo学习笔记

1 dubbo的 作用以下内容摘自dubbo官网:dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现; 2 查看官网大坑 (二)dubbo管理控制台的搭建 git clone https://github.com/apache/incubator-dubbo-o...

29Spring_Autowriter的一些疑惑(很重要)

我用一个Autowriter去注解一个属性,而且我没有在Spring的配置文件中的bean.xml中注册bean(<bean id=""...);那么这个注解有用吗?答案是不行。也就是说要用Autowriter注解时,其实必须要保证在bean容器中注册过这个bean. bean在bean容器中的注册分为两种: 1.手动:就是在spring.xml配置...

[JavaWeb]SpringSecurity-OAuth2.0 统一认证、资源分离的配置,用于分布式架构、模块化开发的认证体系

前言 关于 OAuth2.0的认证体系,翻阅了好多资料,RCF 文档太多,看了一半就看不下去了,毕竟全英文的文档看起来,是有一点让我烦躁,但也对 OAuth2.0的认证流程有了一个基本的概念,之前用 SpringSecurity 做了一个基于 RBAC 的权限管理系统的基础配置,所以对 SpringSecurity 算是比较了解了,于是 OAuth2.0...

Dubbo扩展机制(三)Wrapper【代理】

一、前言 Dubbo内核 dubbo所有功能都是基于dubbo内核之上完成的,dubbo内核由四部分构成,分别为SPI、Adaptive、Wrapper、Activate。而dubbo的内核设计原则,也是我们所熟悉的aop,ioc与动态编译compiler,这些称之为dubbo的内核原理。   Wrapper机制 即扩展点自动包装。Wrapper 类同样...

spring-装配bean

1.spring配置的可选方案 spring提供了三种装配bean的机制: 在xml中显式配置 在java中进行显式配置 隐式的bean发现机制和自动转配 三种方式在适当的场合使用,当然你可以选择自己喜欢的方式转配bean。 2.自动化装配bean spring从两个角度实现自动化装配 组件扫描(component scanning)spring会自...

Spring AOP之使用注解创建切面

上节中我们已经定义了Performance接口,他是切面中的切点的一个目标对象。那么现在就让我们使用AspectJ注解来定义切面吧。 1.定义切面 下面我们就来定义一场舞台剧中观众的切面类Audience: package com.spring.aop.service.aop; import org.aspectj.lang.ProceedingJoi...