前言:对于第一次接触分布式dubbo框架的小伙伴,可先自行了解一下dubbo的相关原理和运行机制。博主推荐一篇不错的博文,小伙伴们可以阅览后,再学习本文dubbo分布式项目搭建。
dubbo基本原理:https://blog.csdn.net/en_joker/article/details/89946034
本文借鉴以下博客:Dubbo入门---搭建一个最简单的Demo框架
1. Zookeeper 安装配置
下载地址:https://zookeeper.apache.org/releases.html
官网安装教程:http://zookeeper.apache.org/doc/r3.5.5/zookeeperStarted.html
百度网盘链接:https://pan.baidu.com/s/141kQcKae7ay7-O7WVAORsg 提取码:jaij
下载解压后,将bin下的zoo_sample.cfg文件复制一份并修改文件名为zoo.cfg,编辑该文件配置信息如下所示:
# The number of milliseconds of each tick 心跳间隔 毫秒每次
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting anacknowledgement
syncLimit=5
# the directory where the snapshot isstored. //镜像数据位置
dataDir=D:\\layduo\\dubbo\\data
#日志位置
dataLogDir=D:\\layduo\\dubbo\\logs
# the port at which the clients willconnect 客户端连接的端口
clientPort=2181
完成以上配置后,启动Zookeeper服务,进入安装目录bin下,输入以下命令:
zkServer.cmd
重新cmd开启另一个窗口,输入以下命令查看启动状态:
jps -l -v
进入安装目录bin下,输入以下命令连接Zookeeper:
zkCli.cmd 127.0.0.1:2181
2. dubbo-admin安装配置
由于dubbo被阿里捐献给了apache,这次安装admin时,参考网上的资料,地址还是停留在之前的链接,踩了不少坑,这里记录下。
dubbo-admin下载地址:
地址一:https://github.com/apache/incubator-dubbo/releases 该地址2.6版本以上的包中没有dubbo-admin ,2.5x版本的有。
地址二:https://github.com/apache/incubator-dubbo-ops 该地址中的dubbo-admin(默认端口7001)模块被单独拎出来了,springboot方式启动,可以直接运行main方法,或者使用 java -jar 方式启动,很方便,有github账号的可以fork一下。
现成的dubbo-admin.war百度网盘链接:https://pan.baidu.com/s/1ZeD_FJbwA58ji1msfVz41A 提取码:evgq
下载后把dubbo-admin通过mvn命令行将dubbo-admin打成war包,进入dubbo-admin目录下,通过以下命令打包:
mvn package -Dmaven.skip.test=true
接着将打包好war包放在tomcat的webapps目录下,启动tomcat,war包将会自动解压。然后修改WEB-INF下的dubbo.properties文件,初始root和guest账户密码:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
最后测试dubbo-admin访问是否能成功,浏览器访问http://ip:端口/dubbo-admin,输入账号密码进入主页面说明配置成功。
3. 项目搭建(开发环境jdk1.7 + maven + spring + dubbo + zookeeper + idea)
项目结构如下所示:其中dubbo是父级项目,里面的三个都是子项目,dubbo-api是接口管理,dubbo-provider是服务提供方,dubbo-consumer是服务消费方。
dubbo项目根路径下的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.layduo</groupId>
<artifactId>dubbo</artifa