一、案例说明
相信有很多小伙伴都知道,dubbo是一个分布式、高性能、透明化的RPC服务框架,提供服务自动注册、自动发现等高效服务治理方案,dubbo的中文文档也是非常全面的,如下图所示:
二、Dubbo基础介绍与环境搭建
1.Dubbo基础介绍
Dubbo管理架构的变化如图:
通过dubbo监控中心和后台管理可以很好的监控dubbo服务,监控服务端服务和客户端调用情况,调用次数,调用日志,方便问题查找。
2.环境搭建
安装zookeepe解压(zookeeper-3.4.8.tar.gz)得到如下:
然后进入conf将zoo_sample.cfg改名成zoo.cfg。并相关如下内容:
该目录为存放数据的目录。然后启动,在bin目录下:
三、工程创建
1、搭建B工程
1.导入依赖
2.创建对象
3.创建服务
4.编写Dubbo的配置文件
位置我放在根目录下dubbo/dubbo-server.xml,内容如下:
5.编写Web.xml
6.启动tomcat
在控制台中将会看到如下内容:
可以看到,已经将UserService服务注册到zookeeper注册中心,协议采用的是dubbo。
2、搭建A工程
1.拷贝基本文件
从b系统中拷贝User对象、UserService接口到a系统
.
2.编写Dubbo的配置文件
3.编写UserService测试用例
查看效果如下:
可以看到,已经查询到10条数据,那么,也就是说A系统通过B系统提供的服务获取到了数据。
3、解决代码重复问题
我们可以看到,在上面的案例中User实体和服务接口两个项目都需要使用,代码复用不高。那么我们可以将该部分代码抽取出来打成包,以供所有系统使用。故可以在创建一个工程项目名为dubbo-b-api。然后将相关的代码都放到该项目中,再在其它项目中导入该项目依赖即可。这也是我们在真实项目中应该做的事情,因为调用方未必知道细节。