`

Zookeeper 学习笔记之配置启动

 
阅读更多

Zookeeper 的安装非常简单,下面将从单机模式和集群模式

 

单机模式配置:

  Zookeeper 的启动脚本在 bin 目录下,Linux 下的启动脚本是 zkServer.sh

在你执行启动脚本之前,还有几个基本的配置项需要配置一下,Zookeeper 的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是将 zoo_sample.cfg 改名为 zoo.cfg,因为 Zookeeper 在启动时会找这个文件作为默认配置文件。

 

 tickTime=2000 

 dataDir=D:/devtools/zookeeper-3.2.2/build 

 clientPort=2181 

 

  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
  • dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
  • clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。

当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务。

群集模式配置:

 Zookeeper 还支持另外一种伪集群的方式,也就是可以在一台物理机上运行多个 Zookeeper 实例,下面将介绍集群模式的安装和配置。

Zookeeper 的集群模式的安装和配置也不是很复杂,所要做的就是增加几个配置项。集群模式除了上面的三个配置项还要增加下面几个配置项

initLimit=5 

 syncLimit=2 

 server.1=192.168.211.1:2888:3888 

 server.2=192.168.211.2:2888:3888 

 

initLimit:这个配置项是用来配置 Zookeeper 接受客户端(这里所说的客户端不是用户连接 Zookeeper 服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader 的 Follower 服务器)初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 10 个心跳的时间(也就是 tickTime)长度后 Zookeeper 服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10 秒

 

syncLimit:这个配置项标识 Leader 与 Follower 之间发送消息,请求和应答时间长度,最长不能超过多少个 tickTime 的时间长度,总的时间长度就是 2*2000=4 秒

 

server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的 Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。

除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面就有一个数据就是 A 的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个 server。

数据模型:

Zookeeper 会维护一个具有层次关系的数据结构,它非常类似于一个标准的文件系统

Zookeeper 这种数据结构有如下这些特点:

  1. 每个子目录项如 NameService 都被称作为 znode,这个 znode 是被它所在的路径唯一标识,如 Server1 这个 znode 的标识为 /NameService/Server1
  2. znode 可以有子节点目录,并且每个 znode 可以存储数据,注意 EPHEMERAL 类型的目录节点不能有子节点目录
  3. znode 是有版本的,每个 znode 中存储的数据可以有多个版本,也就是一个访问路径中可以存储多份数据
  4. znode 可以是临时节点,一旦创建这个 znode 的客户端与服务器失去联系,这个 znode 也将自动删除,Zookeeper 的客户端和服务器通信采用长连接方式,每个客户端和服务器通过心跳来保持连接,这个连接状态称为 session,如果 znode 是临时节点,这个 session 失效,znode 也就删除了
  5. znode 的目录名可以自动编号,如 App1 已经存在,再创建的话,将会自动命名为 App2
  6. znode 可以被监控,包括这个目录节点中存储的数据的修改,子节点目录的变化等,一旦变化可以通知设置监控的客户端,这个是 Zookeeper 的核心特性,Zookeeper 的很多功能都是基于这个特性实现的,后面在典型的应用场景中会有实例介绍

如何使用

Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储,但是 Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化。通过监控这些数据状态的变化,从而可以达到基于数据的集群管理,后面将会详细介绍 Zookeeper 能够解决的一些典型问题,这里先介绍一下,Zookeeper 的操作接口和简单使用示例。

 

 

 

 

 

 

分享到:
评论

相关推荐

    zookeeper学习笔记

    ### Zookeeper 学习笔记 #### 一、Zookeeper 简介与安装配置 **Zookeeper** 是一个分布式协调服务框架,它提供了一种高效可靠的机制来维护集群中的配置信息、命名服务以及提供分布式锁等功能,使得开发人员能够...

    Zookeeper学习笔记

    【Zookeeper学习笔记】 Zookeeper是一个分布式协调服务,它的核心目标是简化分布式环境下的数据管理与系统协调。作为Apache Hadoop和HBase的重要组件,Zookeeper提供了简单的原语集,支持分布式应用程序之间的通信...

    2021尚硅谷技术之Zookeeper笔记

    在2021年的尚硅谷技术分享中,这些笔记涵盖了ZooKeeper的核心概念、安装配置、数据模型、会话与 watches、集群搭建以及常见应用场景。 **1. ZooKeeper核心概念** ZooKeeper的核心概念包括ZNode、ACL(访问控制列表...

    ZooKeeper学习笔记

    当集群启动时或领导者宕机时,所有跟随者会参与选举过程,最终选出新的领导者。 - **数据一致性**:领导者负责处理客户端的所有写请求,并保证数据在集群中的一致性。跟随者则负责处理读请求,并向领导者发送心跳...

    zookeeper笔记

    ### Zookeeper概述 Zookeeper是一种分布式协调服务框架,它的核心任务是为用户的分布式应用程序提供一系列的协调...无论是从其提供的服务还是从其内部的机制来看,Zookeeper都是值得深入学习和掌握的重要技术之一。

    zookeeper+hbase快速入门全套笔记

    ### Zookeeper快速入门知识点 #### 一、Zookeeper基本功能及应用场景 Zookeeper是一个分布式的、开放源码的协调服务,用于大型应用中...无论是学习还是实际工作中,掌握Zookeeper的基本原理和操作都是非常必要的。

    dubbo+zookeeper入门资源

    1. **安装和配置Zookeeper**:学习如何搭建Zookeeper集群,并验证其正常运行。 2. **创建Dubbo服务**:编写提供服务的Java接口和实现,然后通过Dubbo配置暴露这些服务。 3. **服务注册**:将Dubbo服务注册到...

    solr学习笔记

    ### Solr 学习笔记:关键命令使用说明 Solr 是一个开源的、高性能的全文检索引擎,基于 Java 开发,常被用于大型网站的搜索系统。本文将围绕给定内容中的关键命令进行详细的解析,主要包括 Solr 的启动、集群管理、...

    zookeeper安装

    Zookeeper的源码结构清晰,包含了客户端、服务器端、协议处理、数据模型等多个模块,学习源码可以帮助理解其工作原理。 在实际应用中,Zookeeper经常与Hadoop、HBase、Kafka等大数据组件配合使用,提供高可用性和...

    HADOOP学习笔记

    【HADOOP学习笔记】 Hadoop是Apache基金会开发的一个开源分布式计算框架,是云计算领域的重要组成部分,尤其在大数据处理方面有着广泛的应用。本学习笔记将深入探讨Hadoop的核心组件、架构以及如何搭建云计算平台。...

    Kafka学习笔记.doc

    【Kafka学习笔记】 Kafka是一款高性能的分布式消息中间件,广泛应用于大数据实时处理和流处理领域。它具有高吞吐量、低延迟、可扩展性以及容错性等特点,常用于日志收集、监控数据聚合、用户行为追踪等多个场景。 ...

    RocketMQ学习笔记1

    RocketMQ学习笔记1 RocketMQ是Apache旗下的一个开源的消息队列系统,具有分布式、可靠、可扩展、高性能等特点。下面是对RocketMQ的学习笔记的总结。 分布式架构 RocketMQ原生支持分布式,解决了单点故障问题,...

    3.Hadoop学习笔记.pdf

    Hadoop安装通常包括下载、配置和启动集群的NameNode和DataNode。NameNode是HDFS的主节点,负责管理文件系统的命名空间和客户端对文件的访问。DataNode是从节点,负责存储实际的数据块。Hadoop集群启动时,NameNode...

    dubbo学习笔记

    ### Dubbo 学习笔记 #### 一、SOA与Dubbo概述 **SOA(Service-Oriented Architecture)**,即面向服务的架构样式,它定义了一种松耦合的软件组件模型,这些组件通过定义良好的接口进行通信。SOA强调服务之间的独立...

    dubbo学习笔记.pdf

    【Dubbo学习笔记】 Dubbo是一款高性能、轻量级的Java RPC框架,它旨在提供面向接口的远程方法调用、智能容错与负载均衡、服务自动注册与发现等核心功能,帮助开发者构建分布式服务架构。以下是对Dubbo基础知识、...

    springcloudtext (2)_cloud学习笔记3_

    【SpringCloud学习笔记3:构建微服务架构的关键组件】 在本次学习笔记中,我们将深入探讨SpringCloud生态中的几个核心组件,这些组件对于构建一个完整的微服务架构至关重要。首先,我们从"cloud-gateway-gateway...

    Nacos学习笔记-尚硅谷-BV1q3411Z79z

    本学习笔记将深入探讨Nacos的核心功能、应用场景以及实战操作。 1. **Nacos核心功能**: - **服务注册与发现**:Nacos作为服务注册中心,允许微服务应用向其注册,同时提供服务发现的能力,使得服务之间能够通过...

    Java架构面试专题汇总(含答案)和学习笔记.zip

    这个压缩包包含的学习笔记和习题集全面覆盖了Java架构师所需的核心知识点,下面我们将深入探讨其中的关键内容。 1. **Java基础** - **数据类型与变量**:理解基本数据类型、引用数据类型,以及它们在内存中的存储...

    若依框架分布式事务配置和项目启动手册

    总结,若依框架的分布式事务配置和项目启动是其核心能力之一。理解并熟练掌握这些知识,可以有效地提升开发效率,保证系统的稳定性和高性能。通过阅读《分布式事务 _ RuoYi.pdf》、《后台手册 _ RuoYi.pdf》等文档,...

Global site tag (gtag.js) - Google Analytics