dubbo之zookeeper集群搭配

搭建zookeeper环境

1.在搭建zookeeper环境前,一定要配置jdk环境,此处不赘述。

[外链图片转存失败(img-HGrrnbAY-1563883874332)(http://note.youdao.com/yws/res/1622/WEBRESOURCE8e9d2c6a39381b9d273b2a9a1b5191b0)]

2.首先我从zookeeper官网上下载zookeper.通过FileZilla上传到我的阿里服务器上,如下图:

[外链图片转存失败(img-MfZCEAnu-1563883874333)(http://note.youdao.com/yws/res/1601/WEBRESOURCEd2b3a7ffe49362acc88e20cbd061bb3b)]

3.然后解压zookeeper,命令:tar -zxvf zookeeper.tar.gz ,如下图:

[外链图片转存失败(img-GtWFrwnL-1563883874333)(http://note.youdao.com/yws/res/1608/WEBRESOURCEa6e1aede4fc16c2b1efd8e4c2bb0f00e)]

4.更改zookeeper-3.4.10为zookeeper,命令:mv zookeeper-3.4.10/ zookeeper,如下图:

[外链图片转存失败(img-S8DGJ0gP-1563883874334)(http://note.youdao.com/yws/res/1612/WEBRESOURCE714a90a9cc2371272b7e146d6440d441)]

5.将zookeeper移动到/usr/local目录下,命令:mv zookeeper /usr/local,如下图:

[外链图片转存失败(img-6lhic2wo-1563883874334)(http://note.youdao.com/yws/res/1619/WEBRESOURCE5cf9ae3660d138eafdbdc24ce43d3cc6)]

6.在zookeeper的conf目录下,将zoo_sample.cfg改名为zoo.cfg, 可以用这个命令:cp zoo_sample.cfg zoo.cfg,复制一份,以防在修改配置过程中失误。

7.查看zoo.cfg,命令: vim zoo.cfg,如下图:

[外链图片转存失败(img-GsuVqY01-1563883874334)(http://note.youdao.com/yws/res/1633/WEBRESOURCEacabe74a2167f18e0e11bf4bb9e47a00)]

1).tickTime: zookeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,tickTime以毫秒为单位
2).initLimit: 集群中的follower服务器与leader服务器之间初始化连接时能容忍的最多心跳数
3).syncLimit: 集群中的follower服务器与leader服务器之间请求和应答之间容忍的最多心跳数
4).dataDir: 存储zookeeper的快照文件,pid文件,默认为/tmp/zookeeper,建议在zookeeper安装目录下创建data目录,将dataDir配置为/usr/local/zookeeper/data,如下图:

[外链图片转存失败(img-suPSPGqI-1563883874335)(http://note.youdao.com/yws/res/1649/WEBRESOURCE3855223861de8cdc0f9fb494ea2cc6fb)]

5).clientPort: 客户端连接zookeeper的端口,即zookeeper对外的服务端口,默认为2181

8.进入zookeeper的bin目录下启动zookeeper,命令:./zkServer.sh start

[外链图片转存失败(img-adFGXztr-1563883874335)(http://note.youdao.com/yws/res/1653/WEBRESOURCE9cbf85d4bc3d42b997e7b549bc99e0d4)]

9.查看zookeeper进程,命令: ps -ef | grep zookeeper

[外链图片转存失败(img-UUbPsJtb-1563883874335)(http://note.youdao.com/yws/res/1655/WEBRESOURCE63327f59fd6af433188b8ae7b171e38f)]

10.进入zookeeper的bin目录下关闭zookeeper,命令:./zkServer.sh stop

zookeeper图形化界面: 点击即可下载

进入build目录下,双击zookeeper-dev-ZooInspector.jar,如下图:

[外链图片转存失败(img-Zj6Oq6hw-1563883874335)(http://note.youdao.com/yws/res/1668/WEBRESOURCE7ed496ed8c81f2050c8bd64a18bfdea0)]

[外链图片转存失败(img-4OhrCYuZ-1563883874336)(http://note.youdao.com/yws/res/1673/WEBRESOURCEe2ce22d0fceaad597143a80b30bad3c1)]

此处119.23.108.42为我的服务器地址,2181为zookeeper/conf目录下的zoo.cfg文件里clientPort的值

[外链图片转存失败(img-QlLN4DNC-1563883874336)(http://note.youdao.com/yws/res/1679/WEBRESOURCE5c1f0c6021be705a63332d8e6d5f4482)]

连接上以后界面展示结果,如下图:

[外链图片转存失败(img-8E3x69T0-1563883874336)(http://note.youdao.com/yws/res/1702/WEBRESOURCE30715bf3b5b911579ccbd99db5878ba7)]

如何在dubbo中使用zookeeper

1.在pom.xml中引入如下依赖:

 
          org.apache.zookeeper
          zookeeper
          3.4.13
          pom
      
    
    
      org.apache.curator
      curator-framework
      4.0.1
    

2.这里讲dubbo依赖贴出来

 
      com.alibaba
      dubbo
      2.6.2
    

3.bug解决,其实我在做项目的时候引入了如下依赖:


    
          com.101tec
          zkclient
          0.10
      
      
      
      org.apache.zookeeper
      zookeeper
      3.4.6
    

然后再启动项目的时候报如下错:
[外链图片转存失败(img-5T27GRdZ-1563883874337)(http://note.youdao.com/yws/res/1697/WEBRESOURCE0c73ec5fe52ab23b6b90ca28b66f9d0d)]

错误就一目了然,所以在dubbo项目中配置zookeeper时一定要谨慎!!!

zookeeper集群搭建

1.集群中只要超过半数的机器是正常工作的,那么整个集群对外就是可用的;

2.也就是说如有有两个zookeeper,那么只要有一台故障了,zookeeper就不能用了,因为1没有过半,所以2个zookeeper不是高可用的,因为不能容忍任何1台发生故障;

3.同理有3个zookeeper,1个故障了,还剩下2个,过半了,所以3个zookeeper才是高可用的,因为能容忍1台发生故障;

4.如果是4台?5台?6台呢?那么分布式能容忍1,2,2(一般用奇数台zookeeper)投票机制

搭建集群

1.复制3个zookeeper

[外链图片转存失败(img-3BSbYSXk-1563883874337)(http://note.youdao.com/yws/res/1753/WEBRESOURCE487e73dc2cb48d036deb03c378f79e81)]

2.修改配置文件

vim /zookeeper_1/conf/zoo.cfg

dataDir=/usr/local/zookeeper_1/data
clientPort=2181

server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

其中2888端口号是zookeeper服务之间通信的端口,3888是zookeeper与其他应用程序通信的端口  

3.在对应的dataDir指向的目录下创建myid,里面保存1,对应上面server.1的1,其他依次

[外链图片转存失败(img-aSY2XVBo-1563883874338)(http://note.youdao.com/yws/res/1764/WEBRESOURCEbc9e60a4d5b66abf0383112117c98ee0)]

4.启动3个zookeeper

cd zookeeper_1/bin,然后执行./zkServer.sh start

[外链图片转存失败(img-mchfycY6-1563883874338)(http://note.youdao.com/yws/res/1772/WEBRESOURCEa043a926500f856eebe8614ad87e9146)]

5.查看进程

[外链图片转存失败(img-FyRbokmk-1563883874338)(http://note.youdao.com/yws/res/1770/WEBRESOURCEef200be613ba9e22dd00b37280c316a9)]

6.配置项目provider.xml配置

 address="119.23.108.42:2181;119.23.108.42:2182;119.23.108.42:2183" />

7.我停掉一台zookeeper

[外链图片转存失败(img-jn6DCNYH-1563883874339)(http://note.youdao.com/yws/res/1779/WEBRESOURCE36df7852a9646dac39f1ada0886c2670)]

项目还是可以启动起来

[外链图片转存失败(img-2PO005Iv-1563883874339)(http://note.youdao.com/yws/res/1782/WEBRESOURCEb038478b7db122a55b55c944dcbeb64a)]

8.我再停掉一台zookeeper

项目报错,如下图,提示zookeeper连不上

[外链图片转存失败(img-8VDFX3sp-1563883874339)(http://note.youdao.com/yws/res/1792/WEBRESOURCE48e307b589c92cdf485d56d24f8a1862)]

扫描关注下面二维码获得更多有用的资源!

你可能感兴趣的:(zookeeper)