Osheep

时光不回头,当下最重要。

一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例

Maven模块化

创建一个名为dubbo-demo的Maven工程,该工程包含三个模块

•dubbo-demo-interface   (定义对外开放接口)

• dubbo-demo-provider   (接口实现)

• dubbo-demo-consumer (接口调用)

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

dubbo-demo工程中的pom.xml文件如下:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

关于dubbo-demo Maven工程的模块化构建,请参考博文【使用Maven构建模块化工程】https://my.oschina.net/wangmengjun/blog/903769

接下来,我们就一步一步来完成interface、provider以及consumer模块的内容~

模块interface

定义接口

创建一个接口(GreetingService),包含一个hello接口,如:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

简单的接口就定义好了~

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

有了接口,就可以在Provider中完成接口的实现,并暴露接口服务为Dubbo服务给其它模块使用(如consumer)~

模块Provider

添加依赖包

•添加interface依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•添加spring依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•添加dubbo依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•添加zk-client依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

dubbo-demo-provider模块详细的pom.xml文件如下:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

实现接口

编写GreetingService的实现类GreetingServiceImpl, 并实现hello方法~

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

配置XML文件

•spring-dubbo-provider.xml

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•applicationContext.xml

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

编写启动类

编写一个启动类Main

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

其中,

System.in.read(); 的作用是控制台输入任何字符退出~ 因为本文示例provider不是web工程,这个操作只是保持provider的服务一直开着~

接下来,我们继续来完成模块Consumer的代码和配置~

模块Consumer

添加依赖包

•添加interface依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•添加spring依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•添加dubbo依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•添加zk-client依赖包

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

dubbo-demo-consumer模块详细的pom.xml文件如下:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

配置XML文件

•spring-dubbo-consume.xml

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•applicationContext.xml

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

编写测试类

在dubbo-demo-consumer模块下,创建一个调用interface接口的方法~

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

Zookeeper安装和配置

安装

可以从zookeeper官网下载zookeeper安装包~ 本文使用的版本是3.4.6, 将下载的安装包解压缩即可。

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

配置

进入Zookeeper安装目录下的conf目录~

复制zoo_sample.conf文件,并将复制的配置文件取名为zoo.conf~ 其内容如下:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

简单使用的话,可以不做修改~

至此,interface,provider以及consumer模块已经准备好,zookeeper也已经准备好~ 接下来就可以做相关的测试了~

测试 & 结果

启动Zookeeper

进入Zookeeper安装路径下的bin目录~

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

window系统中,启动zkServer.cmd,Linux中,启动zkServer.sh~

启动zookeeper服务,

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

启动提供者

运行dubbo-demo-provider模块中的Main类~

•运行之后,出现如下问题:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

•根据描述 ,解决方法很简单,配置一个log4j.properties文件在resouce下即可

log4j.properties的内容简单如下:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

重新运行Main类,可以看出来,provider已经成功启动~

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

从上述日志中可以看出,hello接口已经成功调用,并输出了Consumer ==> Hello, Eric

当然,我们可以切换到provider的输出日志,包含hello方法被调用执行的时间信息~

至此,一个简单的Maven + Spring + Dubbb + Zookeeper整合示例就完成了。后续,可以将provider变成一个Web工程,如springMVC实现等,其中可以和MySQL或者NoSQL(如MongoDB等)集成,进一步完成其它功能~

消费者调用

接下来,最后一个步骤就是在dubbo-demo-consumer中,调用Dubbo服务即可~

运行中的Main类,结果如下:

《一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例》

从上述日志中可以看出,hello接口已经成功调用,并输出了Consumer ==> Hello, Eric

当然,我们可以切换到provider的输出日志,包含hello方法被调用执行的时间信息~

至此,一个简单的Maven + Spring + Dubbbo + Zookeeper整合示例就完成了。后续,可以将provider变成一个Web工程,如springMVC实现等,其中可以和MySQL或者noSQL(如MongoDB等)集成,进一步完成其它功能~

如果你想学好JAVA这门技术,也想在IT行业拿高薪,可以参加我们的训练营课程,选择最适合自己的课程学习,技术大牛亲授,7个月后,进入名企拿高薪。我们的课程内容有:Java工程化、高性能及分布式、高性能、深入浅出。高架构。性能调优、Spring,MyBatis,Netty源码分析和大数据等多个知识点。如果你想拿高薪的,想学习的,想就业前景好的,想跟别人竞争能取得优势的,想进阿里面试但担心面试不过的,你都可以来,群号为:636532962

注:加群要求

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加。

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加。

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加。

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加。

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知!

6.小号加群一律不给过,谢谢。

点赞