Dubbo新手入门实例HelloWorld(zookeeper)
最近刚接触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)相关推荐
- Dubbo官方入门实例
概览 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点: 自开源 ...
- pythonhelloworld实例_Python基于Tkinter的HelloWorld入门实例
本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做几个Tkinter的应用来提高. 刚学的HelloWorld, ...
- 用python写helloworld_Python基于Tkinter的HelloWorld入门实例
Python基于Tkinter的HelloWorld入门实例 本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做 ...
- [强烈推荐] 新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析
新手入门:目前为止最透彻的的Netty高性能原理和框架架构解析 1.引言 Netty 是一个广受欢迎的异步事件驱动的Java开源网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端. 本文基 ...
- 3、Dubbo急速入门
超级思维导图:processon 一 为什么需要 dubbo 很多时候,其实我们使用这个技术的时候,可能都是因为项目需要,所以,我们就用了,但是,至于为什么我们需要用到这个技术,可能自身并不是很了解的 ...
- java官网教程(基础篇)—— 新手入门
新手入门 Java技术的介绍,以及安装Java开发软件和使用它创建一个简单程序的课程. 本教程提供了关于开始使用Java编程语言所需了解的一切. Java 技术现象 提供Java技术的整体概述.它讨论 ...
- 学微服务必经之路——Nacos新手入门(上)
学微服务必经之路--Nacos新手入门(上) 1.什么是配置中心 1.1 什么是配置 1.2 什么是配置中心 2. Nacos 2.1 主流配置中心对比 2.2 Nacos特性 3.Nacos快速入门 ...
- Docker新手入门详细介绍
Docker新手入门详细介绍 Docker 起源于 dotCloud 公司的内部项目,于 2013 年 3 月以 Apache 2.0 授权协议开源,主要项目代码在 GitHub 上进行维护,2013 ...
- 新手入门:微信小程序--从入门到精通宝典
<ignore_js_op> 作为新手入门的宝典,我们整理了本论坛各种有价值的内容,并按循序渐进的方式呈现给大家. 大家可以按顺序一篇一篇的攻克本帖中的内容,也可以作为字典,跳转至关注的 ...
最新文章
- vim 使用技巧 转载
- 【哈佛商评】关于数据分析,管理者的四个常规错误
- python PyQt5中文教程☞【第十节】PyQt5绘图(绘制文本drawText()、画点drawPoints()、设置颜色、QPen(画笔)绘制线条、QBrush(笔刷)绘制纹理
- 快速消费品行业的营销费用的管理(2)----营销费用的分类
- android四个组件的跨进程通信
- java getipaddress_教你java用getAddress方法取得IP地址
- JAVA RPC (六) 之thrift反序列化RPC消息体
- python接口测试_python接口测试—get请求
- jquery 获取子元素的限制jquery
- 单片机课设———基于51单片机的智能风扇控制器(汇编语言)
- 微信小程序 MinUI 组件库系列之 abnor 异常流组件
- 水仙花数的while方法
- FFT结果的物理意义(zz)
- java:如何解决汉字在记事本中编译翻译后出现乱码
- Kibana中KQL的使用
- [分享]linux架设BT Tracker服务器小记
- SMBIOS介绍(1):概述
- 【DeepCV】白化 whitening
- 统计矢量数据占用三调国有建设用地部分面积
- Atom编辑器快捷键大全