文档章节

Dubbo学习之旅二-Dubbo在spring中的使用

陈小扁
 陈小扁
发布于 2016/04/28 14:49
字数 743
阅读 1658
收藏 11

Dubbo学习之旅二-Dubbo在spring中的使用

下面我将重点介绍一下dubbo在实际项目当中的应用,以demo的形式来说明:


  定义服务接口,单独建一个maven项目名为dubbo-demo-service:

package com.demo;
public interface DemoService {

   String sayHello(String name);

}


  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/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>com.alibaba</groupId>
      <artifactId>dubbo-demo</artifactId>
      <version>2.5.4-SNAPSHOT</version>
   </parent>
   <artifactId>dubbo-demo-api</artifactId>
   <packaging>jar</packaging>
   <name>${project.artifactId}</name>
   <description>The demo module of dubbo project</description>
   <properties>
      <skip_maven_deploy>true</skip_maven_deploy>
   </properties>
</project>


 在服务方实现接口,新建一个maven的项目dubbo-demo-provider

public class DemoServiceImpl implements DemoService {

    public String sayHello(String name) {
        System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
        return "Hello " + name + ", response form provider: " + RpcContext.getContext().getLocalAddress();
    }

配置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:dubbo="http://code.alibabatech.com/schema/dubbo"
   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">
   
   <bean id="demoService" class="com.alibaba.dubbo.demo.provider.DemoServiceImpl" />
   
   <dubbo:service interface="com.alibaba.dubbo.demo.DemoService" ref="demoService" />
   
</beans>


启动provider:

public class DemoProvider {

   public static void main(String[] args) {
        com.alibaba.dubbo.container.Main.main(args);
   }

}


服务消费者:

public class DemoAction {
    
    private DemoService demoService;

    public void setDemoService(DemoService demoService) {
        this.demoService = demoService;
    }

   public void start() throws Exception {
        for (int i = 0; i < Integer.MAX_VALUE; i ++) {
            try {
               String hello = demoService.sayHello("world" + i);
                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " + hello);
            } catch (Exception e) {
                e.printStackTrace();
            }
            Thread.sleep(2000);
        }
   }

}

  定义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:dubbo="http://code.alibabatech.com/schema/dubbo"
   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:reference id="demoService" interface="com.alibaba.dubbo.demo.DemoService" />

</beans>


  启动consumer服务:

public class DemoConsumer {
   
   public static void main(String[] args) {
       com.alibaba.dubbo.container.Main.main(args);
   }

}

 运行之后的控制台,可以看到下面的界面:

configurators,routers&dubbo=2.0.0&interface=com.alibaba.dubbo.demo.DemoService&methods=sayHello&pid=7012&side=consumer&timestamp=1461833464831, urls: [dubbo://10.249.74.95:20880/com.alibaba.dubbo.demo.DemoService?anyhost=true&application=demo-provider&dubbo=2.0.0&generic=false&interface=com.alibaba.dubbo.demo.DemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=1992&side=provider&timestamp=1461833444581], dubbo version: 2.0.0, current host: 10.249.74.95
[28/04/16 04:51:05:005 CST] main  INFO config.AbstractConfig:  [DUBBO] Refer dubbo service com.alibaba.dubbo.demo.DemoService from url multicast://224.5.6.7:1234/com.alibaba.dubbo.registry.RegistryService?anyhost=true&application=demo-consumer&check=false&dubbo=2.0.0&generic=false&interface=com.alibaba.dubbo.demo.DemoService&loadbalance=roundrobin&methods=sayHello&owner=william&pid=7012&side=consumer&timestamp=1461833464831, dubbo version: 2.0.0, current host: 10.249.74.95
[16:51:06] Hello world0, response form provider: 10.249.74.95:20880
[16:51:08] Hello world1, response form provider: 10.249.74.95:20880
[16:51:10] Hello world2, response form provider: 10.249.74.95:20880
[16:51:12] Hello world3, response form provider: 10.249.74.95:20880
[16:51:14] Hello world4, response form provider: 10.249.74.95:20880
[16:51:16] Hello world5, response form provider: 10.249.74.95:20880
[16:51:18] Hello world6, response form provider: 10.249.74.95:20880
[16:51:20] Hello world7, response form provider: 10.249.74.95:20880
[16:51:22] Hello world8, response form provider: 10.249.74.95:20880
[16:51:24] Hello world9, response form provider: 10.249.74.95:20880
[16:51:26] Hello world10, response form provider: 10.249.74.95:20880
[16:51:28] Hello world11, response form provider: 10.249.74.95:20880
[16:51:30] Hello world12, response form provider: 10.249.74.95:20880
[16:51:32] Hello world13, response form provider: 10.249.74.95:20880
[16:51:34] Hello world14, response form provider: 10.249.74.95:20880
[16:51:36] Hello world15, response form provider: 10.249.74.95:20880
[16:51:38] Hello world16, response form provider: 10.249.74.95:20880
[16:51:40] Hello world17, response form provider: 10.249.74.95:20880
[16:51:42] Hello world18, response form provider: 10.249.74.95:20880
[16:51:44] Hello world19, response form provider: 10.249.74.95:20880
[16:51:46] Hello world20, response form provider: 10.249.74.95:20880


© 著作权归作者所有

陈小扁

陈小扁

粉丝 52
博文 87
码字总数 71202
作品 0
浦东
高级程序员
私信 提问
spring boot整合dubbo

github: https://github.com/Athlizo/spring-dubbo-parent 码云: https://git.oschina.net/null5843382/spring-dubbo-parent 相关文档: Spring Dubbo 开发笔记(一)——概述: Spring Dub......

lizo
2017/03/01
0
6
Spring Cloud 入门教程:聊聊Spring Cloud

一、 Spring Cloud 是什么? Spring Cloud 是将分布式系统中一系列基础框架/工具进行整合的框架。其中包含:服务注册与发现、服务网关、熔断器、配置中心、消息中心、服务链路追踪等等。 Sp...

吴伟祥
2018/12/03
0
0
SpringBoot之旅第一篇-初探

一、SpringBoot是什么? 微服务,应该是近年来最火的概念,越来越多的公司开始使用微服务架构,面试中被问到的微服务的概率很高,不管对技术的追求,还是为了进更好的公司,微服务都是我们开...

花漾年华
05/10
0
0
SpringBoot整合Dubbo案例

使用框架: jdk 1.8 springboot-2.1.3 dubbo-2.6 spring-data-jpa-2.1.5 一、开发dubbo服务接口: 按照Dubbo官方开发建议,创建一个接口项目,该项目只定义接口和model类; 1、创建springboo...

ggod
06/09
0
0
Dubbo和Spring Cloud微服务架构

微服务架构是互联网很热门的话题,是互联网技术发展的必然结果。它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。虽然微服务架构没有公认的技术标...

烛光Java后端开发
2018/10/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

硬件配置

https://akkadia.org/drepper/futex.pdf sudo lshw -businfo[sudo] lambda 的密码: Bus info Device Class Description======================================......

MtrS
今天
2
0
springmvc的return “success”源码解读

qqqq

architect刘源源
今天
4
0
Java程序员五面阿里分享 逆袭成功 太不容易了!

前言 拿到阿里实习offer,经历了5次面试,其中4轮技术面,1轮HR面试。在这里分享一下自己的面试经验和学习心得。希望能够帮助更多的小伙伴。 我本科毕业于中南大学信管专业,真正开始学习Jav...

别打我会飞
昨天
4
0
Android Camera模块解析之视频录制

《Android Camera架构》 《Android Camera进程间通信类总结》 《Android Camera模块解析之拍照》 《Android Camera模块解析之视频录制》 《Android Camera原理之CameraDeviceCallbacks回调模...

天王盖地虎626
昨天
2
0
手把手教你使用issue作为博客评论系统

自从上周在阮一峰的 每周分享第 60 期 看到了可以将 GitHub 的 issue 当作评论系统,插入第三方网页的 JS 库——utterances。我就对此“魂牵梦绕”。个人博客使用的是VuePress。 TLDR (不多废...

jump--jump
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部