dubbo+zookeeper搭建笔记
Posted 山水花草
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo+zookeeper搭建笔记相关的知识,希望对你有一定的参考价值。
参考博客:
内容基本来自小宝鸽的博客,部分小地方自己稍作修改。
=============================================================================
=== zookeeper搭建 ===
=============================================================================
一、Zookeeper的介绍
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
Zookeeper作为Dubbo服务的注册中心,Dubbo原先基于数据库的注册中心,没采用 Zookeeper,Zookeeper一个分布式的服务框架,是树型的目录服务的数据存储,能做到集群管理数据 ,这里能很好的作为Dubbo服务的注册中心,Dubbo能与Zookeeper做到集群部署,当提供者出现断电等异常停机时,Zookeeper注册中心能自动删除提供者信息,当提供者重启时,能自动恢复注册数据。
关于Zookeeper的部署,但是在生产环境中,你最好部署3,5,7个节点。部署的越多,可靠性就越高。但是,我们作为本地自己熟练使用,部署一个就够了,部署一个Zookeeper是十分简单的。下面是单机部署Zookeeper的实例。
二、Zookeeper的部署
2.1、 ZooKeeper的下载
2.2、配置
下载后解压,Zookeeper 的配置文件在 conf 目录下,有 zoo_sample.cfg 和 log4j.properties,将zoo_sample.cfg 重命名成zoo.cfg,或者复制一份重新命名为zoo.cfg。因为 Zookeeper 在启动时会找这个文件作为默认配置文件。
下面介绍zoo.cfg文件里面几个配置的意义:
(1)、tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
(2)、dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
(3)、clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
我们需要进行的操作是修改dataDir这个配置的值,我们在Zookeeper的根目录下新建一个文件夹 dataTmp,我的对应路径为:dataLogDir=E:/Study/dubbo/zookeeper-3.4.9/dataTemp
修改配置文件对应地方为:
dataDir=E:/Study/dubbo/zookeeper-3.4.9/dataTmp
2.3、运行
启动Zookeeper目录下bin下的zkServer.cmd,我的是E:\\Study\\dubbo\\zookeeper-3.4.9\\bin\\zkServer.cmd:

启动之后一直开着,不要关掉这个cmd,记得要在Dubbo消费者和提供者运行之前就开启Zookeeper。
=============================================================================
=== dubbo搭建 ===
=============================================================================
一、前言
dubbo的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-admin可以对消费者和提供者进行管理。
二、下载与配置打包
dubbo的下载,可自行到官网下载:https://github.com/alibaba/dubbo
下载下来是这样的一个目录结构:

接下来我们将项目打包成war包,网上看到很多同学打包会出问题,我按照小宝鸽的方法也出现了问题,看了部分评论也有问题(注:我JDK版本是1.7),最后通过搜索解决了,直接在dubbo-master根目录下运行命令:
mvn clean install -Dmaven.test.skip

这里有个小技巧,可以在目录文件夹下按住Shift再右击鼠标,可以直接打开终端,就不用cd进目标目录:

如果出现什么内容不足可以先设置内存大小,命令为(大小自己修改):
set MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=512m
如果看到如下结果,说明打包成功了:

打包成功之后,就会发现dubbo-admin下多了个target文件夹,打开target文件夹,发现里面有个war包:

三、安装dubbo-admin
第二步我们得到dubbo-admin-2.5.4-SNAPSHOT.war,下面我们将这个war包部署到tomcat上。把dubbo-admin-2.5.4-SNAPSHOT.war放到tomcat的webapps目录下:
然后打开tomcat的conf目录下的server.xml文件,把启动端口改成8090,因为zookeeper默认使用的是8080,以免冲突:

启动tomcat,让它把war解压了,打开刚刚tomcat解压生成的dubbo.properties,在WEB-INF目录下,内容如下:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
这里有两个账号:root/root和guest/guest

输入刚刚的用户名root和密码root:

到此,大功告成。
以上是关于dubbo+zookeeper搭建笔记的主要内容,如果未能解决你的问题,请参考以下文章
第一次搭建springboot+dubbo+zookeeper项目小结
[dubbo实战] dubbo+zookeeper伪集群搭建