`
weitao1026
  • 浏览: 1048180 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zookeeper的一系列基础知识

 
阅读更多

zookeeper的一系列基础知识,如果,你还不清楚zookeeper的基本架构,或者工作原理,那么,建议看一下散仙的上篇文章。本篇,散仙来介绍下怎么安装部署zookeeper,其实散仙在Hbase的安装部署里,已经介绍过独立的zookeeper的安装部署,本次除了zookeeper的集群安装外,还会额外介绍一下,怎么在zookeeper3.3.0之后的版本里,安装观察者角色(Observer),以便使我们的集群能够获取更好的扩展性,与稳定性。

zookeeper的安装模式也有三种,分别是单机模式,伪分布模式,和完全分布式模式,
本篇,散仙要介绍的是完全分布式模式。


我们需要先下载好zookeeper的安装包,然后解压后,配置zookeeper,修改其config目录下zoo_simple.cfg重命名为zoo.cfg,并在其data目录(自己手动创建)下,新建一个myid文件,server.x后面的x数字一直即可,修改其内容如下:

Java代码 复制代码 收藏代码
  1.     
  2. //tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。    
  3.    tickTime=2000    
  4. //initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。  
  5.   
  6. //当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。  
  7.     initLimit=10    
  8. //syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒  
  9.     syncLimit=5    
  10. //dataLogDir:日志文件保存的位置  
  11.     dataDir=/root/zookeeper/data    
  12. //客户端的端口号    
  13.   clientPort=2181    
  14.       //server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。  
  15.   
  16. //如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。  
  17.     server.1=10.2.143.5:2887:3887    
  18.     server.2=10.2.143.36:2888:3888    
  19.     server.3=10.2.143.37:2889:3889  
  
//tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。  
   tickTime=2000  
//initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。

//当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。
    initLimit=10  
//syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒
    syncLimit=5  
//dataLogDir:日志文件保存的位置
    dataDir=/root/zookeeper/data  
//客户端的端口号  
  clientPort=2181  
      //server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。

//如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
    server.1=10.2.143.5:2887:3887  
    server.2=10.2.143.36:2888:3888  
    server.3=10.2.143.37:2889:3889


注意,如上的配置是在3台节点非观察者角色的配置,下面我们来看下,观察者角色的配置内容:

Java代码 复制代码 收藏代码
  1. //tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。      
  2.    tickTime=2000      
  3. //initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。    
  4.     
  5. //当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。    
  6.     initLimit=10      
  7. //syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒    
  8.     syncLimit=5      
  9. //dataLogDir:日志文件保存的位置    
  10.     dataDir=/root/zookeeper/data      
  11. //客户端的端口号      
  12.   clientPort=2181      
  13.       //server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。    
  14.     
  15. //如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。  
  16.   
  17. //此处声明表示作为一个观察者角色存在   
  18. peerType=observer  
  19.    
  20.     server.1=10.2.143.5:2887:3887      
  21.     server.2=10.2.143.36:2888:3888      
  22.     server.3=10.2.143.37:2889:3889    
  23. //注意观察者角色的末尾,需要拼接上observer  
  24.     server.4=10.2.143.38:2886:3886:observer   
//tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 毫秒时间就会发送一个心跳。    
   tickTime=2000    
//initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。  
  
//当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 10*2000=20 秒。  
    initLimit=10    
//syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 5*2000=10 秒  
    syncLimit=5    
//dataLogDir:日志文件保存的位置  
    dataDir=/root/zookeeper/data    
//客户端的端口号    
  clientPort=2181    
      //server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。  
  
//如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

//此处声明表示作为一个观察者角色存在 
peerType=observer
 
    server.1=10.2.143.5:2887:3887    
    server.2=10.2.143.36:2888:3888    
    server.3=10.2.143.37:2889:3889  
//注意观察者角色的末尾,需要拼接上observer
    server.4=10.2.143.38:2886:3886:observer 


通过,以上信息,我们发现,观察者角色的配置还是比较简单的,只在原来的配置中增加了,两处改动,然后我们就可可以启动集群信息,通过查看节点状态,我们可以发现观察者角色的状态为observer,观察者角色,并不会参入投票过程,所以在高并发的情况下,大大的增强了系统的可扩展性和吞吐率。另外需要注意的在启动zookeeper集群的时候,需要把系统的防火墙给关闭,除非你已经对外开放了zookeeper的客户端端口号,否则将有可能导致启动失败。

分享到:
评论

相关推荐

    Zookeeper-基础

    2. 节点(Znode):Zookeeper的数据存储结构类似文件系统,由一系列节点组成。每个节点称为Znode,包含数据和元数据,如创建时间、最后修改时间、版本号等。Znode分为持久节点和临时节点,前者在创建后不会因客户端...

    zookeeper一站式学习资料

    Zookeeper提供了诸如命名服务、配置管理、集群同步、分组服务等一系列基础服务,是许多大型分布式系统背后的关键组件。其设计目标是简化分布式环境中的数据一致性问题,使得开发者可以专注于业务逻辑,而不用过于...

    ZooKeeper3.4.9 windos和linux

    3.4.9版本是ZooKeeper的一个稳定版本,提供了一系列增强功能和性能优化。在本文中,我们将深入探讨如何在Windows和Linux操作系统上安装、配置和使用ZooKeeper 3.4.9。 一、ZooKeeper基础 1.1 ZooKeeper的角色:...

    Zookeeper基础知识

    【Zookeeper基础知识】 Zookeeper,源自雅虎,是Google Chubby的开源实现,是一个高度可靠的分布式协调服务。它的设计初衷是简化分布式环境中的复杂一致性问题,通过提供一系列简单易用的接口,帮助开发者构建...

    zookeeper编程api

    `ZooKeeper`提供了事务操作接口,如`multi`方法,可以批量执行一系列原子操作,保证了操作的事务性。 8. **同步与异步操作**: Zookeeper API提供了同步和异步两种操作方式。同步操作会阻塞直到操作完成,异步...

    Zookeeper入门到精通 教学视频及文档

    《Zookeeper入门到精通》教学视频及文档涵盖了分布式协调...通过学习《Zookeeper入门到精通》的教学视频和文档,你将全面掌握Zookeeper的基础知识,并能灵活运用到实际的分布式系统开发和运维中,提升你的IT技能水平。

    apache-zookeeper-3.5.10.tar.gz

    4. **操作API**:ZooKeeper提供了一系列的操作API,包括创建、删除、更新、读取ZNode,以及设置和取消watcher等。 5. **原子性**:ZooKeeper保证所有操作都是原子的,即一次操作要么全部完成,要么全部不完成,不会...

    Zookeeper中文开发指南

    Zookeeper的数据模型类似于文件系统,由一系列的路径标识符组成,每个路径称为Znode。Znode可以存储数据,并且具有版本号,支持多版本控制。 **三、Zookeeper角色** 1. **Leader**: 负责处理写请求,维护全局的...

    Zookeeper讲义.pdf

    ### Zookeeper基础知识详解 #### 1. Zookeeper概述 Zookeeper是一个开源的分布式协调服务,由Apache基金会维护和支持。它的主要目标是简化分布式应用程序的开发和管理,通过提供一系列的基础服务来帮助解决分布式...

    zookeeper学习笔记

    通过这些知识点的学习,我们不仅了解了如何在 Linux 环境下安装配置 zookeeper,并且还掌握了基本的操作命令和数据模型的基础知识。这对于深入理解 zookeeper 的工作原理及应用场景非常有帮助。

    深入浅出Zookeeper

    #### 一、引言与基础知识 ##### 自序 在深入了解Zookeeper之前,我们不妨先从一位实践者的视角出发。最初接触到Zookeeper时,很多人可能会感到困惑,尤其是当其与Kafka这样的分布式消息系统结合使用时。例如,对于...

    zookeeper-3.3.6

    关于Zookeeper-3.3.6的深入学习,可以参考博客《Zookeeper详解》(http://blog.csdn.net/u011877584/article/details/78443651),该博客详细介绍了Zookeeper的基础知识和实践案例,对于初学者来说是一份不错的参考...

    分布式设计与开发(一)------zookeeper实现实例

    由于提供的链接无法直接访问,无法详细解读具体的文章内容,但上述内容涵盖了Zookeeper的基础知识和常见应用场景。在实际学习过程中,结合具体的代码示例和实际操作,将有助于更深入地理解Zookeeper的工作原理和使用...

    zookeeper知识点总结.rar

    Zookeeper的数据模型类似于文件系统,由一系列的节点(ZNode)组成,每个节点可以包含数据和子节点。ZNode分为临时节点和持久节点,临时节点在创建它的会话结束时自动删除,而持久节点在被显式删除前一直存在。此外...

    ZooKeeper配置和简单使用.pptx

    通过这些基础功能,ZooKeeper能够帮助开发者解决一系列分布式系统中常见的问题,例如一致性保证、组管理、Leader选举等。 **1.1 命名服务(Naming Service)** 命名服务是指在分布式环境中为资源和服务提供统一的...

    spring dubbo zookeeper实现简单demo

    首先,Spring Dubbo是一款由阿里巴巴开发的高性能、轻量级的Java RPC框架,它提供了服务治理的一系列功能,包括服务注册、服务发现、负载均衡、容错机制等。而Zookeeper是Apache的一个开源项目,它是一个分布式的,...

Global site tag (gtag.js) - Google Analytics