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

Posted OSC开源社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例相关的知识,希望对你有一定的参考价值。


本文给出一个整合Maven+Spring+Dubbo+Zookeeper的示例,并且一步步给出完成步骤,并对其中可能遇到的问题进行解决~


Maven模块化


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

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

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

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


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 + Dubbb + Zookeeper整合示例就完成了。后续,可以将provider变成一个Web工程,如springMVC实现等,其中可以和MySQL或者NoSQL(如MongoDB等)集成,进一步完成其它功能~



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


推荐阅读

点击“阅读原文”查看更多精彩内容

以上是关于一步步完成Maven+Spring+Dubbo+Zookeeper的整合示例的主要内容,如果未能解决你的问题,请参考以下文章

一步步搭建 Spring Boot maven 框架的工程

dubbo的使用实例

maven工程中dubbo与spring整合

基于spring及zookeeper的dubbo工程搭建

Spring Cloud Alibaba Dubbo 集成

一步步完成thrift rpc示例