dubbo简介
dubbo介绍请参考官网
本文会使用zookeeper作为注册中心,其中有3个项目,皆使用MAVEN进行管理
- dubbo-api项目
提供统一的接口,为jar包,供consumer和provider引用
- dubbo-provider项目
服务提供者,为jar包,包含api接口的实现类,提供服务的实现逻辑
- dubbo-consumer
服务消费者,为WAR包,使用tomcat进行部署,前端浏览器访问,可以访问到dubbo-provider项目提供的服务
zookeeper
Zookeeper 是 Apacahe Hadoop 的子项目,是一个树型的目录服务,支持变更推送,适合作为 Dubbo 服务的注册中心,工业强度较高,可用于生产环境,并推荐使用
安装zookeeper
- 下载安装
zookeeper启动会默认使用conf/zoo.cfg配置文件,我们需要copy一份并重新命名为zoo.cfg
|
|
- zoo.cfg配置
|
|
- 简单命令
|
|
dubbo-api项目
项目结构
接口
api只提供一个UserService的接口,非常简单
|
|
配置文件
在该项目的classpath路径下提供了一个xml配置,该配置文件其实就是dubbo消费者的相关配置,后边消费者项目引入api之后可以直接使用该文件,当然你也可以直接在消费者项目行配置以下内容
|
|
dubbo-provider项目
项目结构
接口实现
实现UserService接口的方法
|
|
配置文件
- dubbo.properties
备注:启动dubbo服务时,默认读取classpath下一个名为dubbo.properties文件的属性值,该文件配置信息如下。
|
|
- user-provider.xml
其实就是一个spring的配置文件,只不过引入了dubbo相关的配置
|
|
- pom.xml
|
|
启动服务提供者
第一种启动方式
使用dubbo提供的启动方式(其实内部也是调用了第二种方式)
|
|
第二种启动方式
使用spring启动方式
|
|
启动服务提供者
启动成功如下:
|
|
dubbo-consumer项目
项目结构
UserController
UserController就是一个简单的控制器
|
|
配置文件
- web.xml
|
|
- applicationContext.xml
spring配置文件
|
|
- user-consumer.xml
|
|
- spring-mvc.xml
|
|
pom.xml
省略,请参考源码logback.xml
省略,请参考源码
启动项目
使用tomcat启动该项目
访问一下
dubbo-admin
管理控制台,开源部分主要包含:路由规则,动态配置,服务降级,访问控制,权重调整,负载均衡,等管理功能,安装参考
打开控制台可以看到我们刚刚写的服务提供者和服务消费者