前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >手把手教你dubbo之linux环境下搭建zookeeper集群

手把手教你dubbo之linux环境下搭建zookeeper集群

作者头像
程序员小强
发布2019-06-03 16:01:02
1.1K0
发布2019-06-03 16:01:02
举报
文章被收录于专栏:小强的进阶之路

搭建zookeeper环境

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

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

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

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

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

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

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

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,如下图:

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

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

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

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

zookeeper图形化界面:

下载链接:https://github.com/apache/zookeeper/tree/b79af153d0f98a4f3f3516910ed47234d7b3d74e/src/contrib/zooinspector

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

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

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

如何在dubbo中使用zookeeper

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

代码语言:javascript
复制
 <dependency>
          <groupId>org.apache.zookeepergroupId>
          <artifactId>zookeeperartifactId>
          <version>3.4.13version>
          <type>pomtype>
      dependency>
    
    <dependency>
      <groupId>org.apache.curatorgroupId>
      <artifactId>curator-frameworkartifactId>
      <version>4.0.1version>
    dependency>

2.这里将dubbo依赖贴出来

代码语言:javascript
复制
 <dependency>
      <groupId>com.alibabagroupId>
      <artifactId>dubboartifactId>
      <version>2.6.2version>
    dependency>

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

代码语言:javascript
复制
    <dependency>
          <groupId>com.101tecgroupId>
          <artifactId>zkclientartifactId>
          <version>0.10version>
      dependency>

      <dependency>
      <groupId>org.apache.zookeepergroupId>
      <artifactId>zookeeperartifactId>
      <version>3.4.6version>
    dependency>

然后再启动项目的时候报如下错:

错误就一目了然,所以在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

2.修改配置文件

vim /zookeeper_1/conf/zoo.cfg

代码语言:javascript
复制
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,其他依次

4.启动3个zookeeper

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

5.查看进程

6.配置项目provider.xml配置

代码语言:javascript
复制
 address="119.23.108.42:2181;119.23.108.42:2182;119.23.108.42:2183" />

7.我停掉一台zookeeper

项目还是可以启动起来

8.我再停掉一台zookeeper

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 MoziInnovations 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 搭建zookeeper环境
  • zookeeper图形化界面:
  • 如何在dubbo中使用zookeeper
  • zookeeper集群搭建
    • 搭建集群
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档