最近刚接触dubbo,新手入门遇到好多麻烦,网上搜来的入门demo也是各种问题,百般周折自己终于倒腾出来了,与大家共享~

1.创建服务方项目dubbo-server,在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.xbz</groupId><artifactId>dubbo-server</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>server</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- spring begin --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.6.RELEASE</version></dependency><!-- spring end --><!-- dubbo begin --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version></dependency><!-- dubbo end --><!-- 注册中心zookeeper begin --><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.3.6</version></dependency><!-- 注册中心zookeeper end --><!-- log begin --><dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.1.1</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><!-- log end --><!-- other begin --><dependency><groupId>org.jboss.netty</groupId><artifactId>netty</artifactId><version>3.2.0.Final</version></dependency><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.8</version></dependency><!-- other end --></dependencies>
</project>

2.测试接口DemoService和实现类DemoServiceImpl

package com.xbz.service;public interface DemoService {String sayHello(String name);}
package com.xbz.service.impl;import com.xbz.service.DemoService;public class DemoServiceImpl implements DemoService {public String sayHello(String name) {System.out.println("init : " + name);return "hello " + name;}}

3.applicationProvider.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 "><dubbo:application name="dubbo-demo" /><!-- zookeeper注册中心 --><dubbo:registry address="zookeeper://127.0.0.1:2181" /><dubbo:protocol name="dubbo" port="20880" /><!-- 和本地bean一样实现服务 --> <bean id="demoService" class="com.xbz.service.impl.DemoServiceImpl" /><!-- 向注册中心注册暴漏服务地址,注册服务 --><dubbo:service interface="com.xbz.service.DemoService"ref="demoService" executes="10" /></beans>

4.服务方主方法ServerMain

package main;import java.io.IOException;import org.springframework.context.support.ClassPathXmlApplicationContext;public class ServerMain {public static void main(String[] args) throws IOException {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "applicationProvider.xml" });context.start();System.out.println("输入任意按键退出 ~ ");System.in.read();context.close();}
}

至此,服务方的配置就已经完成了~下面是服务方项目结构:

接下来我们创建客户端消费方dubbo-client项目
1.创建dubbo-client,在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.xbz</groupId><artifactId>dubbo-client</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>client</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><!-- spring begin --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>4.1.6.RELEASE</version></dependency><!-- spring end --><!-- dubbo begin --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version></dependency><!-- dubbo end --><!-- 注册中心zookeeper begin --><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.3.6</version></dependency><!-- 注册中心zookeeper end --><!-- log begin --><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><!-- log end --><!-- other begin --><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.8</version></dependency><dependency><groupId>com.xbz</groupId><artifactId>dubbo-server</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!-- other end --></dependencies>
</project>

2.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"><dubbo:application name="consumer-of-dubbo-demo" /><dubbo:registry address="zookeeper://127.0.0.1:2181" /><!-- 向注册中心订阅服务 --><dubbo:reference id="demoService" interface="com.xbz.service.DemoService" />
</beans> 

3.客户端消费方主方法ClientMain

package main;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.xbz.service.DemoService;public class ClientMain {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "applicationConsumer.xml" });context.start();DemoService service = (DemoService) context.getBean("demoService");System.out.println(service.sayHello("world"));context.close();}
}

客户端消费方项目结构如下

至此,一个基本的dubbo项目就已经构建完成了.在本机上启动zookeeper注册中心(直接解压到英文路径下直接运行根路径下bin/zkServer.cmd启动)

启动服务方

启动成功,线程阻塞~

运行客户端消费方

输出hello world,调用成功 !

此时服务端控制台输出如下

demo下载:http://download.csdn.net/detail/xingbaozhen1210/9532171

之前下载太多分太高了 , 再提供低分版 : https://download.csdn.net/download/xingbaozhen1210/10875259

zookeeper即下即用版:http://download.csdn.net/download/xingbaozhen1210/10262469

Dubbo新手入门实例HelloWorld(zookeeper)相关推荐

  1. Dubbo官方入门实例

    概览 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点:             自开源 ...

  2. pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例

    本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做几个Tkinter的应用来提高. 刚学的HelloWorld, ...

  3. 用python写helloworld_Python基于Tkinter的HelloWorld入门实例

    Python基于Tkinter的HelloWorld入门实例 本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做 ...

  4. [强烈推荐] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析

    新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基 ...

  5. 3、Dubbo急速入门

    超级思维导图:processon 一 为什么需要 dubbo 很多时候,其实我们使用这个技术的时候,可能都是因为项目需要,所以,我们就用了,但是,至于为什么我们需要用到这个技术,可能自身并不是很了解的 ...

  6. java官网教程(基础篇)—— 新手入门

    新手入门 Java技术的介绍,以及安装Java开发软件和使用它创建一个简单程序的课程. 本教程提供了关于开始使用Java编程语言所需了解的一切. Java 技术现象 提供Java技术的整体概述.它讨论 ...

  7. 学微服务必经之路——Nacos新手入门(上)

    学微服务必经之路--Nacos新手入门(上) 1.什么是配置中心 1.1 什么是配置 1.2 什么是配置中心 2. Nacos 2.1 主流配置中心对比 2.2 Nacos特性 3.Nacos快速入门 ...

  8. Docker新手入门详细介绍

    Docker新手入门详细介绍 Docker 起源于 dotCloud 公司的内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护,2013 ...

  9. 新手入门:微信小程序--从入门到精通宝典

    <ignore_js_op>  作为新手入门的宝典,我们整理了本论坛各种有价值的内容,并按循序渐进的方式呈现给大家. 大家可以按顺序一篇一篇的攻克本帖中的内容,也可以作为字典,跳转至关注的 ...

最新文章

  1. vim 使用技巧 转载
  2. 【哈佛商评】关于数据分析,管理者的四个常规错误
  3. python PyQt5中文教程☞【第十节】PyQt5绘图(绘制文本drawText()、画点drawPoints()、设置颜色、QPen(画笔)绘制线条、QBrush(笔刷)绘制纹理
  4. 快速消费品行业的营销费用的管理(2)----营销费用的分类
  5. android四个组件的跨进程通信
  6. java getipaddress_教你java用getAddress方法取得IP地址
  7. JAVA RPC (六) 之thrift反序列化RPC消息体
  8. python接口测试_python接口测试—get请求
  9. jquery 获取子元素的限制jquery
  10. 单片机课设———基于51单片机的智能风扇控制器(汇编语言)
  11. 微信小程序 MinUI 组件库系列之 abnor 异常流组件
  12. 水仙花数的while方法
  13. FFT结果的物理意义(zz)
  14. java:如何解决汉字在记事本中编译翻译后出现乱码
  15. Kibana中KQL的使用
  16. [分享]linux架设BT Tracker服务器小记
  17. SMBIOS介绍(1):概述
  18. 【DeepCV】白化 whitening
  19. 统计矢量数据占用三调国有建设用地部分面积
  20. Atom编辑器快捷键大全

热门文章

  1. 爬虫实践---电影排行榜和图片批量下载
  2. 原生 js 模拟 alert 弹窗
  3. linux添加开机自启动脚本
  4. ListView缓存机制踩过的坑
  5. asp.net request获取url各个部分
  6. vue实现一个简单的购物车功能
  7. 模拟电路--单电源差分运算放大电路方案
  8. 关于Intel IPP的基本使用方法——参照可设置ipl库
  9. java多态的简单例子_要JAVA的简单例子,继承\多态的,详细讲解运行的每一步
  10. HTTP Get Post