今天是六一儿童节,从千里之外的广州,回到了贵州老家,真好!好山好水好心情,好了接着写点东西。这是企业级应用,如何实现服务化系列的第三篇。在上一篇:企业级应用,如何实现服务化二(dubbo架构)中,认识了dubbo的整体架构,和dubbo四大特点:连通性、健壮性、伸缩性、升级性。下面先来实现一个入门级的demo,直观感受一下。

1.案例说明

通过一个简单的案例,演示dubbo入门使用。案例中只有服务提供者,服务消费者。

2.案例实现

  2.1.创建项目

  2.2.配置pom.xml导入依赖

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6.  
  7. <groupId>com.anan</groupId>
  8. <artifactId>dubbo-demo</artifactId>
  9. <version>1.0-SNAPSHOT</version>
  10.  
  11. <packaging>jar</packaging>
  12.  
  13. <properties>
  14. <!--spring 版本-->
  15. <spring.version>5.0.2.RELEASE</spring.version>
  16. <!--dubbo版本-->
  17. <dubbo.version>2.7.0</dubbo.version>
  18. </properties>
  19.  
  20. <dependencies>
  21. <!--spring依赖包-->
  22. <dependency>
  23. <groupId>org.springframework</groupId>
  24. <artifactId>spring-context</artifactId>
  25. <version>${spring.version}</version>
  26. </dependency>
  27. <!--dubbo依赖-->
  28. <dependency>
  29. <groupId>org.apache.dubbo</groupId>
  30. <artifactId>dubbo</artifactId>
  31. <version>${dubbo.version}</version>
  32. </dependency>
  33.  
  34. </dependencies>
  35. </project>

  2.3.服务端开发

    2.3.1.service接口

  1. package com.anan.dubbo.service;
  2.  
  3. /**
  4. * 服务接口
  5. */
  6. public interface HelloService {
  7.  
  8. /**
  9. * 问好
  10. */
  11. String sayHello(String name);
  12. }

    2.3.2.service接口实现

  1. package com.anan.dubbo.service.impl;
  2.  
  3. import com.anan.dubbo.service.HelloService;
  4.  
  5. /**
  6. * 服务接口实现
  7. */
  8. public class HelloServiceImpl implements HelloService{
  9.  
  10. /**
  11. * 问好
  12. *
  13. * @param name
  14. */
  15. public String sayHello(String name) {
  16. return "hello,"+name+"!";
  17. }
  18. }

  2.4.配置服务提供者

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://dubbo.apache.org/schema/dubbo
  8. http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  9.  
  10. <!--提供方应用信息,用于计算依赖关系-->
  11. <dubbo:application name="provider-hello-world-app" />
  12.  
  13. <!--使用multicast广播注册中心暴露服务地址-->
  14. <dubbo:registry address="multicast://224.1.1.1:6666"/>
  15.  
  16. <!--用dubbo协议在20880端口暴露服务-->
  17. <dubbo:protocol name="dubbo" port="20880"/>
  18.  
  19. <!--声明需要暴露的服务接口-->
  20. <dubbo:service interface="com.anan.dubbo.service.HelloService" ref="helloService"/>
  21.  
  22. <!--和本地bean一样实现服务-->
  23. <bean id="helloService" class="com.anan.dubbo.service.impl.HelloServiceImpl"/>
  24.  
  25. </beans>

  2.5.配置服务消费者

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
  5. xsi:schemaLocation="http://www.springframework.org/schema/beans
  6. http://www.springframework.org/schema/beans/spring-beans.xsd
  7. http://dubbo.apache.org/schema/dubbo
  8. http://dubbo.apache.org/schema/dubbo/dubbo.xsd">
  9.  
  10. <!--消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样-->
  11. <dubbo:application name="consumer-hello-world-app" />
  12.  
  13. <!--使用multicast广播注册中心暴露发现服务地址-->
  14. <dubbo:registry address="multicast://224.1.1.1:6666"/>
  15.  
  16. <!--生成远程服务代理,可以和本地bean一样使用helloService-->
  17. <dubbo:reference id="helloService" interface="com.anan.dubbo.service.HelloService" />
  18.  
  19. </beans>

  2.6.测试

    2.6.1.启动服务提供者Provider

  1. package com.anan.dubbo.provider;
  2.  
  3. import org.springframework.context.ApplicationContext;
  4. import org.springframework.context.support.ClassPathXmlApplicationContext;
  5.  
  6. /**
  7. * 服务提供者
  8. */
  9. public class Provider {
  10.  
  11. public static void main(String[] args) throws Exception{
  12. // 加载spring配置文件,创建spring容器
  13. ApplicationContext context =
  14. new ClassPathXmlApplicationContext("classpath:provider.xml");
  15.  
  16. // 阻塞:等待输入,可按任意键退出
  17. System.in.read();
  18. }
  19. }

    2.6.2.启动服务消费者Consumer

  1. package com.anan.dubbo.consumer;
  2.  
  3. import com.anan.dubbo.service.HelloService;
  4. import org.springframework.context.ApplicationContext;
  5. import org.springframework.context.support.ClassPathXmlApplicationContext;
  6.  
  7. /**
  8. * 服务消费者
  9. */
  10. public class Consumer {
  11.  
  12. public static void main(String[] args) {
  13. // 加载spring配置文件,创建spring容器
  14. ApplicationContext context =
  15. new ClassPathXmlApplicationContext("classpath:consumer.xml");
  16.  
  17. // 获取远程服务代理
  18. HelloService helloService = (HelloService)context.getBean("helloService");
  19. //System.out.println(helloService.getClass());
  20.  
  21. // 执行远程方法
  22. String result = helloService.sayHello("anan");
  23. System.out.println(result);
  24.  
  25. }
  26. }

企业级应用,如何实现服务化三(dubbo入门案例)的更多相关文章

  1. 分布式服务框架Dubbo入门案例和项目源码

    本项目源代码:http://download.csdn.net/detail/fansunion/9498406 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案, 是 ...

  2. spring入门案例分析及原理

    Springmvc执行原理: 一. 入门案例的执行流程 1. 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象,就会加载s ...

  3. 企业级应用,如何实现服务化五(dubbo综合案例)

    这是企业级应用,如何实现服务化第五篇.在上一篇企业级应用,如何实现服务化四(基础环境准备)中.已经准备好了zookeeper注册中心,和dubbo管理控制台.这一篇通过一个综合案例,看一看在企业级应用 ...

  4. Dubbo入门—搭建一个最简单的Demo框架

    一.Dubbo背景和简介 1.电商系统的演进 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. a.单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一 ...

  5. 基于MAVEN使用IDEA创建dubbo入门项目图文教程

    花了很长时间没有找到一个很详细的图文教程来学习dubbo入门框架,故记录下来. 一: 项目工程目录 简单介绍项目目录结构: 二: 创建父工程 具体操作步骤: 1,打开IDEA,按下面步骤来 File- ...

  6. dubbo入门学习笔记之入门demo(基于普通maven项目)

    注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...

  7. Dubbo入门---搭建一个最简单的Demo框架(转)

    Dubbo背景和简介 Dubbo开始于电商系统,因此在这里先从电商系统的演变讲起. 单一应用框架(ORM) 当网站流量很小时,只需一个应用,将所有功能如下单支付等都部署在一起,以减少部署节点和成本.  ...

  8. Dubbo入门介绍---搭建一个最简单的Demo框架

    Dubbo入门---搭建一个最简单的Demo框架 置顶 2017年04月17日 19:10:44 是Guava不是瓜娃 阅读数:320947 标签: dubbozookeeper 更多 个人分类: D ...

  9. 电商系统的演变可以看出架构演变 Dubbo入门 远程过程调用 需要解决的问题

    Dubbo入门---搭建一个最简单的Demo框架 - CSDN博客 https://blog.csdn.net/noaman_wgs/article/details/70214612 Dubbo背景和 ...

随机推荐

  1. s:if

    <s:iterator value="value[3]" id="ques" status="s"> <s:if test ...

  2. office web apps的搭建部署(1)(写于2017.12.27)

    因为业务方面的需求,项目要求搭建office-web-apps这个玩意儿,做一个在线预览编辑的功能,为了方便,我下面都用OWA代替这个服务. 首先说一下什么是office-web-apps-serve ...

  3. vue 仿今日头条

    vue 仿今日头条 为了增加移动端项目的经验,近一周通过 vue 仿写今日头条,以下就项目实现过程中遇到的问题以及解决方法给出总结,有什么不正确的地方,恳请大家批评指正^ _ ^!,代码仓库地址为 g ...

  4. Alsa中PCM参数设置⭐⭐

    1) PCM设备的句柄.2) 指定同时可供回放或截获的PCM流的方向3) 提供一些关于我们想要使用的设置选项的信息,比如缓冲区大小,采样率,PCM数据格式等4) 检查硬件是否支持设置选项.   4.1 ...

  5. loj#2340. 「WC2018」州区划分

    FWT&&FMT板子 #include<cstdio> #include<iostream> #include<cstring> #include& ...

  6. Jquery 获取所有对象的第一个子元素

    转自:http://blog.sina.com.cn/s/blog_5fdbd0410100pmnn.html <ul>  <li>John</li>  <l ...

  7. PHP 中$_SERVER的用法

    php编程中经常需要用到一些服务器的一些资料,我把常用的用高亮的方式贴出来,其余的放在后面.方便以后查阅$_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言 $_SERVER ...

  8. FTP:文件传输协议(指令及响应代码)

    文件传输协议(FTP)使得主机间可以共享文件. FTP 使用 TCP 生成一个虚拟连接用于控制信息,然后再生成一个单独的 TCP 连接用于数据传输.控制连接使用类似 TELNET 协议在主机间交换命令 ...

  9. IO多路复用模型之epoll实现机制

    设想一下如下场景:有100万个客户端同时与一个服务器进程保持着TCP连接.而每一时刻,通常只有几百上千个TCP连接是活跃的(事实上大部分场景都是这种情况).如何实现这样的高并发? 在select/po ...

  10. ubuntu_ root change to user

    (1)从user用户切换到root用户 不管是用图形模式登录Ubuntu,还是命令行模式登录,我们会发现缺省的用户是user 但是当我们需要执行一些具有root权限的操作(如修还系统文件)时,经常需要 ...