dubbo是一个分布式服务框架,将服务实现与调用分开部署,实现了最大程度的服务复用。
关于dubbo的进一步学习,可以参考官网的介绍,本文的目的是带大家建立一个我认为已经十分简单的dubbo项目。希望大家可以通过这篇博文对dubbo有一个初步的理解和认识,以便后续的继续深入。
上面的这个图展示了我们这个项目大致的描述。
需要部署一个tomcat-provider,用于提供服务的实现。部署另一个tomcat-consumer来调用服务,看清楚是另一个tomcat。这里需要另外一台机器用于配置dubbo的服务注册中心。
先带大家部署一个dubbo的服务注册中心。
首先需要一个linux的虚拟机,安装JDK以及配置环境变量的部分我就省略了。
上传zookeeper的压缩包,这里我用的是3.4.6的版本。
解压缩,进入conf目录,修改配置文件为zoo.cfg,原来里面有一个sample配置文件,直接改名就可以,配置里面的内容,如下:
其他的配置项目不需要改,重点修改dataDir属性,其中我配置的/root/zookeepdata,这个目录必须手动创建。
配置完成后进入bin目录
其中./zkServer.sh start用于启动zookeeper,使用status命令来查看状态,看到standalone表示启动已经成功了。
这里展示一下服务器的IP地址,后续有用。
dubbo提供了一个免费的工具,用于管理服务。
在这台机器上安装一个tomcat,在webapp下放上dubboo-admin的war包,启动tomcat服务器就可以,如果该tomcat和zookeeper在同一台机器上,不需要做任何的配置就可以使用。
启动完成后,访问dubbo管理页面,用户名和密码默认都是root。
这样dubbo服务注册中心的部分就已经好了。
下面开始建立工程,需要三个工程,
dubbo-interface,普通的JAR工程,用于提供公共的接口。
dubbo-provider,普通的WAR工程,用于提供接口的实现,依赖dubbo-interface工程。
dubbo-consumer,普通的WAR工程,用于调用接口的实现,依赖dubbo-interface工程。
下面先看一下dubbo-interface的工程结构。
下面是pom文件,主要是修改了编译的版本,意义不大。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<mod