吕帅希

又一个WordPress站点

腾讯控股一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例-开源中国

一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例-开源中国


本文给出一个整合Maven+Spring+Dubbo+Zookeeper的示例,并且一步步给出完成步骤,并对其中可能遇到的问题进行解决~
Maven模块化
创建一个名为dubbo-demo的Maven工程,该工程包含三个模块
?dubbo-demo-interface (定义对外开放接口)
壹枝笔?dubbo-demo-provider (接口实现)
q9500?dubbo-demo-consumer (接口调用)

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

关于dubbo-demo Maven工程的模块化构建,请参考博文【使用Maven构建模块化工程】https://my.oschina.net/wangmengjun/blog/903769
接下来,我们就一步一步来完成interface、provider以及consumer模块的内容~
模块interface
?定义接口
创建一个接口(GreetingService),包含一个hello接口陈品卉 ,如:

简单的接口就定义好了~

有了接口,就可以在Provider中完成接口的实现,并暴露接口服务为Dubbo服务给其它咸阳彩虹中学 模块使用(如consumer)~
模块Provider
关银屏无惨 ?添加依赖包
?添加interface依赖包

?添加spring依赖包

?添加dubbo依赖包

点心拨号?添加zk-client依赖包

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



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

?配置XML文件
?spring-dubbo-provider.xml

?applicationContext.xml

?编写启动类
编写一个启动类Main

其中,

System.in.read();的作用是控制台输入任何字符退出~ 因为本文示例provider不是web工程,这个操作只是保持provider的服务一直开着~
接下来,我们继续来完成模块Consumer的代码和配置~
模块Consumer
地菜煮鸡蛋 ?添加依赖包
?添加interface依赖包

?添加spring依赖包

神崎亜里沙 ?添加dubbo依赖包

?添加zk-client依赖包

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



?配置XML文件
强宠弃妃?spring-dubbo-consume.xml

?applicationContext.xml

安康公主 ?编写测试类
在dubbo-demo-consumer水魅莲模块下超级符阵师 ,创建一个调用interface接口的方法~

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

?配置
进入Zookeeper安装目录下的conf目录~
复制zoo_sample.conf文件,并将复制的配置文件取名为zoo.conf~ 其内容如下:

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

至此,interface腾讯控股 邹宜均,provider以及consumer揭阳一中吧模块已经准备好,zookeeper也已经准备好~ 接下来就可以做相关的测试了~
测试 & 结果
?启动Zookeeper
进入Zookeeper安装路径下的bin目录~


window系统中,启动zkServer.cmd,Linux中混沌规则,启动zkServer.sh~
启动zookeeper服务,

?启动提供者
运行dubbo-demo-provider模块中的Main类~
?运行之后,出现如下问题:

?根据描述 ,解决方法很简单,配置一个log4j.properties文件在resouce下即可
log4j.properties的内容简单如下:

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

从上述日志中可以看出,hello接口已经成功调用,并输出了Consumer ==> Hello, Eric
当然,我们可以切换到provider的输出日志,包含hello方法被调用执行的时间信息~

至此,一个简单的Maven + Spring + Dubbb + Zookeeper整合示例就完成了匈奴大帝 。后续,可以将provider变成一个Web工程,如springMVC实现等,其中可以和MySQL或者NoSQL(如MongoDB等)集成,进一步完成其它功能~
?消费者调用
接下来,最后一个步骤就是在dubbo-demo-consumer中,调用Dubbo服务即可~
运行中的Main类,结果如下:

从上述日志中可以看出重生之希尧 ,李宇菲hello接口已经成功调用,并输出了Consumer ==> Hello, Eric
当然,我们可以切换到provider的输出日志,包含hello方法被调用执行的时间信息~

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

推荐阅读
盘点那些评分最高的项目管理工具,不服来战!
Redis 单例、主从模式、sentinel 以及集群的配置方式及优缺点对比
Spring 思维导图,让 Spring 不再难懂(ioc 篇)
一名 40 岁“老”程序员的反思
“放码过来”邀您亮“项”,一不小心就火了!
点击“阅读原文”查看更多精彩内容