美文网首页
分布式协调服务中间件zookeeper,集群安装和配置

分布式协调服务中间件zookeeper,集群安装和配置

作者: singleZhang2010 | 来源:发表于2020-12-08 11:38 被阅读0次

概述

Zookeeper是一个分布式协调服务中间件,提供的功能包括:配置维护、名字服务、分布式同步、组服务、分布式锁、分布式的ID生成器等。主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成“脏数据”的后果。Zookeeper通过协调服务来对各个系统进行有序的管理,它的三大特性:一致性、可用性、容错性。

安装和配置

因为为实验环境,而不是生成环境,所以这里使用windows环境。下载zookeeper3.1.14,并解压

image.png
ZooKeeper节点数有以下要求
  • ZooKeeper集群节点数必须是奇数
    因为在ZooKeeper集群中,需要一个主节点,也称为Leader节点。
    主节点是集群通过选举的规则从所有节点中选举出来的。
    在选举的规则中很重要的一条是:要求可用节点数量>总节点数量/2
  • ZooKeeper集群要大于等于3个,至少是3个
    ZooKeeper可以通过一个节点,正常启动和提供服务。但是,一个节点的ZooKeeper服务不能叫作集群,达不到高可用,在正常情况下,搭建ZooKeeper集群,至少需要3个节点

集群配置

log日志目录
在log目录下创建三个节点的日志目录zoo-1、zoo-2、zoo-3
data数据目录
在data目录下创建三个节点的数据目录zoo-1、zoo-2、zoo-3
创建myid文件
为每一个节点创建一个id文件,即myid文件(没有后缀名)

  • myid文件的唯一作用是记录(伪)节点的编号
  • myid文件是一个文本文件,文件名称为myid
  • myid文件内容为一个数字,表示节点的编号
  • 在myid文件中只能有一个数字,不能有其他的内容
  • myid文件的存放位置,默认处于数据目录下

※myid文件中id的值只能是一个数字,id的范围是1~255,表示集群最多的节点个数为255个。

配置文件
conf目录下复制三份,分别命名为zoo-1.cfg、zoo-2.cfg、zoo-3.cfg,参考内容如下

#zoo-1.cfg
tickTime=4000
initLimit=10
syncLimit=5
dataDir=E:/zookeeper/zookeeper-3.4.14/data/zoo-1
dataLogDir=E:/zookeeper/zookeeper-3.4.14/log/zoo-1
clientPort=2181
server.1=127.0.0.1:28881:38881
server.2=127.0.0.1:28882:38882
server.3=127.0.0.1:28883:38883
#zoo-2.cfg
tickTime=4000
initLimit=10
syncLimit=5
dataDir=E:/zookeeper/zookeeper-3.4.14/data/zoo-2
dataLogDir=E:/zookeeper/zookeeper-3.4.14/log/zoo-2
clientPort=2182
server.1=127.0.0.1:28881:38881
server.2=127.0.0.1:28882:38882
server.3=127.0.0.1:28883:38883
#zoo-3.cfg
tickTime=4000
initLimit=10
syncLimit=5
dataDir=E:/zookeeper/zookeeper-3.4.14/data/zoo-3
dataLogDir=E:/zookeeper/zookeeper-3.4.14/log/zoo-3
clientPort=2183
server.1=127.0.0.1:28881:38881
server.2=127.0.0.1:28882:38882
server.3=127.0.0.1:28883:38883

※参数说明:

  • dataDir:数据目录选项,配置为前面准备的数据目录。myid文件处于此目录下
  • dataLogDir:日志目录选项,配置为前面准备的日志目录。如果没有设置该参数,默认将使用和dataDir相同的设置
  • clientPort:表示客户端连接ZooKeeper集群中的节点的端口号,clientPort一般设置为2181(生产环境下clientPort基本都是相同的,实验环境中,因为在本地一台机器上,所以设置了不同端口)
  • 节点信息的配置
    节点信息需要配置集群中所有节点的(id)编号、IP地址和端口号。格式为:server.id=host:port:port
    (1)不能有相同id的节点,需要确保每个节点的myid文件中的id值不同
    (2)每一行“server.id=host:port:port”中的id值,需要与所对应节点的数据目录下的myid文件中的id值保持一致
    (3)每一个配置文件都需要配置全部的节点信息。不仅仅是配置自己的那份,还需要配置所有节点的id、ip、端口
    (4)在每一行“server.id=host:port:port”中,需要配置两个端口。前一个端口(如示例中的28881)用于节点之间的通信,后一个端口(如示例中的38881)用于选举主节点
    在实际的分布式集群模式下,由于不同节点的ip不同,每一行记录中可以配置相同的端口
  • tickTime
    配置单元时间。单元时间是ZooKeeper的时间计算单元,其他的时间间隔都是使用tickTime的倍数来表示
  • initLimit
    节点的初始化时间,该参数用于Follower(从节点)的启动,并完成与Leader(主节点)进行数据同步的时间。
    该参数默认值为10,表示是参数tickTime值的10倍,必须配置且为正整数
  • syncLimit
    心跳最大延迟周期。该参数用于配置Leader节点和Follower节点之间进行心跳检测的最大延时时间,Leader节点会通过心跳检测来确定Follower节点是否存活。
    该参数默认值为5,表示是参数tickTime值的5倍,必须配置且为正整数。

依次启动zookeeper集群节点

E:\zookeeper\zookeeper-3.4.14\bin>zkServer-1.cmd
E:\zookeeper\zookeeper-3.4.14\bin>zkServer-2.cmd
E:\zookeeper\zookeeper-3.4.14\bin>zkServer-2.cmd

在zookeeper 安装目录bin文件夹下,使用 jps命令查看集群的节点进程数


image.png

使用客户端命令

> zkCli.cmd -server 127.0.0.1:2181

连接成功,信息如下:


连接成功

※ZooKeeper集群需要有1/2以上的节点启动才能完成集群的启动,才能对外提供服务
※可以把启动命令做成服务,这样就可以变成后台服务来运行。

拓展zkClient
上面我们使用了zkClient命令,连接到服务端后,用help命令可以列出ZooKeeper的所有命令

ZooKeeper的所有命令
zk的客户端常用命令:
zk的客户端常用命令
使用 get命令获取ZNode节点信息
> get /
ZNode节点信息

ZNode节点信息的主要属性介绍


ZNode节点信息

相关文章

  • 分布式协调服务中间件zookeeper,集群安装和配置

    概述 Zookeeper是一个分布式协调服务中间件,提供的功能包括:配置维护、名字服务、分布式同步、组服务、分布式...

  • Hbase与ZooKeeper组件如何协同工作

    ZooKeeper HBase使用ZooKeeper作为分布式协调服务来维护集群中的服务器状态。Zookeeper...

  • Zookeerper相关

    1、Zookeeper定义 Zookeeper是一种分布式协调服务。所谓分布式协调服务就是在分布式系统中共享配置、...

  • Zookeeper-服务注册与发现

    最近在学习zookeeper,作为一个分布式协调服务,它的用途挺多,服务注册与发现、分布式锁、集群选举、配置中心等...

  • 程序员快速提升:精通Zookeeper的经典应用场景

    内容一:(补充)zookeeper集群的工作原理 zookeeper提供了重要的分布式协调服务,它是如何保证集群数...

  • windows安装zookeeper(单机模式)

    Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。...

  • Dubbo和Zookeeper简介

    Dubbo流程图 Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、...

  • Zookeeper

    Zookeeper是分布式系统中的中间件,负责分布式系统的协调服务。可用于 master选举 实现配置文件的统一管...

  • zk到底是什么?

    zookeeper是一个分布式协调服务,在分布式系统中共享配置,协调锁资源,提供命名服务 问:身为分布式系统的协调...

  • 《日子》.分布式-Kafka集群安装

    1、zookeeper集群安装 参考《日子》.分布式之开篇-Zookeeper集群安装 zookeeper 三台 ...

网友评论

      本文标题:分布式协调服务中间件zookeeper,集群安装和配置

      本文链接:https://www.haomeiwen.com/subject/fnjfgktx.html