在Windows系统上安装zookeeper

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
注册配置 MSE Nacos/ZooKeeper,118元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 在Windows系统上安装zookeeper

文章目录

概述

ZooKeeper 是分布式应用程序的高性能协调服务。它在一个简单的界面中公开了常用服务,例如命名、配置管理、同步和组服务,因此可以不必从头开始编写它们。可以现成地使用它来实现共识、组管理、领导者选举和存在协议,也可以根据自己的特定需求在此基础上进行构建。

下载

可以在Zookeper官网下载页下载zookeeper,这里有最新的zk发布包。

我这里下载是3.6.3版本,是截止到这篇博文发布前最稳定版本,下载链接为https://dlcdn.apache.org/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz

image.png

安装

  1. 下载完成之后解压下载的压缩包到自己电脑盘符下,我这里是在D:\zookeeper下解压的,解压后根目录为D:\zookeeper\zookeeper-3.6.3


  1. 解压后进入conf文件夹下面,把zoo_sample.cfg复制一份并改名为zoo.cfg,zoo.cfg是zookeeper配置文件入口。


  1. 在根目录下新建一个data文件夹,用于存储内存数据库快照, 修改配置文件,将dataDir属性修改为自定义的data路径下,dataDir=D:/zookeeper/zookeeper-3.6.3/data,注意:路径分隔符要用反斜杠 /

这样配置就基本结束了,接下来就是启动了,启动分为两种,单机版和集群版

单机版

zookeeper的启动命令都在bin目录下,进入bin目录下,.cmd是Windows版本的命令,.sh 是Linux的命令。

找到zkServer.cmd,

image.png

双击启动,看到如下窗口,不闪退,不报错就是启动成功了

image.png

也可以通过,双击客户端zkCli.cmd批处理命令来验证server是否启动成功。看到如下红框的内容则server启动成功

image.png

或者在配置文件中开启日志审核功能,audit.enable=true

在根目录下的logs文件夹下找到zookeeper_audit.log文件,看到如下结果则server启动成功

image.png

审核日志是3.6.0 中的新功能:默认情况下禁用审核日志。设置为“true”以启用它,有关日志审核可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAuditLogs.html

这样,单机版就完成了。

集群版

集群版就像对麻烦一点了,这里的集群还是伪集群,真正实现集群的操作跟单机版的伪集群差不多,只不过是操作不同的服务器而已。

步骤如下:

  1. 修改配置文件:找到zoo.cfg配置文件,在文件最后加上
# 集群配置
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890

配置介绍:

集群配置节点是server.id=host:port1:port2形式,

id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间

host:zookeeper所在服务器的IP

port1:Zookeeper服务器之间的通信端口

port2:Leader选举的端口

从 ZooKeeper 3.6.0 开始,可以为每个 ZooKeeper 服务器 指定多个地址

形如:

server.1=zoo1-net1:2888:3888|zoo1-net2:2889:3889
server.2=zoo2-net1:2888:3888|zoo2-net2:2889:3889
server.3=zoo3-net1:2888:3888|zoo3-net2:2889:3889

2、添加myid文件

myid文件代表着该zookeeper服务器的id文件,内容也很简单,就是一个名为myid的文件,文件内容就只有一个上面所说的id。

在Windows系统中,创建一个名为myid的文本文件,然后输入一个id,最后删除文件后缀,不要任何后缀,否则会启动会报myid找不到异常。

myid文件所在的路径就是配置文件中dataDir指定的路径下。

image.png

3、集群复制多份,将上述配置好的zookeeper复制两份,并修改每个配置文件中的clientPort、dataDir和admin.serverPort属性,还有myid中的数值。

clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。

admin.serverPort:嵌入式 Jetty 服务器监听的端口,默认为 8080。

AdminServer是3.5.0 中新添加的功能,更多可以查看https://zookeeper.apache.org/doc/r3.6.3/zookeeperAdmin.html#sc_adminserver


配置文件:

tickTime=2000
initLimit=10
syncLimit=5
dataDir=D:/zookeeper/zookeeper-3.6.3/data
dataLogDir=D:/zookeeper/zookeeper-3.6.3/logs
clientPort=2181
maxClientCnxns=60
# 嵌入式 Jetty 服务器监听的端口。默认为 8080
admin.serverPort=8081
messageTracker.Enabled=true
# 日志审核
audit.enable=true
# 集群配置
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
  1. 启动集群, 分别到对应zookeeper集群的文件夹下双击zkServer.cmd批处理命令,出现以下日志则代表成功
2022-02-10 16:55:41,612 [myid:1] - INFO  [QuorumPeer[myid=1](plain=[0:0:0:0:0:0:0:0]:2181)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast
2022-02-10 16:55:49,084 [myid:3] - INFO  [QuorumPeer[myid=3](plain=[0:0:0:0:0:0:0:0]:2183)(secure=disabled):QuorumPeer@864] - Peer state changed: following - broadcast

或者

2022-02-10 16:55:41,611 [myid:2] - INFO  [QuorumPeer[myid=2](plain=[0:0:0:0:0:0:0:0]:2182)(secure=disabled):QuorumPeer@864] - Peer state changed: leading - broadcast

可以看到三个zookeeper服务器,一个leader,两个following。

配置介绍

  • tickTime:心跳时间,单位毫秒,默认2000。zookeeper最小的会话超时时间是2个tickTime。
  • initLimit: follower连接和同步leader的超时时间,以tickTime为单位,默认10,也就是说10*tickTime时间之后客户端还没连接到服务器,则客户端连接失败。如果 ZooKeeper 管理的数据量很大,则根据需要增加此值。
  • syncLimit:follower连接和同步leader的超时时间,这个时间是leader向follower发送心跳之后,如果在syncLimit时间内没有收到follower的回信,表示follower掉线了。以tickTime为单位
  • dataDir:用于存储内存数据库快照的路径
  • dataLogDir:允许配置使用专用的日志设备,并有助于避免日志记录和快照之间的竞争。拥有专用日志设备对吞吐量和稳定延迟有很大影响。强烈建议专用日志设备并将dataLogDir设置为指向该设备上的目录,然后确保将dataDir指向不在该设备上的目录。
  • clientPort:客户端连接Zookeeper服务器的端口。Zookeeper会监听这个端口,接受客户端的访问请求。
  • maxClientCnxns:通过 IP 地址限制单个客户端可以对 ZooKeeper 集合的单个服务器进行的并发连接数。用于防止某些类别的 DoS 攻击,包括文件描述符耗尽。默认值为 60。将此设置为 0 完全消除了对并发连接的限制。
  • admin.serverPort:嵌入式 Jetty 服务器监听的端口。默认为 8080
  • audit.enable:默认情况下禁用审核日志,默认值false。3.6.0 中的新功能
  • electionAlg:选举算法,0表示leader选举算法(基于UDP),1对应非认证的基于UDP的快速leader选举版本,2对应认证的基于UDP的快速leader选举版本,3对应基于TCP的快速leader版本选举。默认值是3。
  • autopurge.purgeInterval:Zookeeper服务端自动清除多余的日志和快照文件的周期,以小时为单位,设置正整数表示开启自动清除,默认0,不开启
  • server.id=host:port1:port2

id:分配给host的id,需要在myid文件中指定,id 必须介于 1 和 254 之间

host:zookeeper所在服务器的IP

port1:Zookeeper服务器之间的通信端口

port2:Leader选举的端口

更多配置请查看官网


能力一般,水平有限,如有错误,请多指出。

如果对你有用点个关注给个赞呗


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
3月前
|
安全 Windows
永久关闭 Windows 11 系统更新
永久关闭 Windows 11 系统更新
168 0
|
10天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
10天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
6天前
|
安全 关系型数据库 MySQL
Windows Server 安装 MySQL 8.0 详细指南
安装 MySQL 需要谨慎,特别注意安全配置和权限管理。根据实际业务需求调整配置,确保数据库的性能和安全。
44 9
|
2月前
|
安全 Windows
【Azure Cloud Service】在Windows系统中抓取网络包 ( 不需要另外安全抓包工具)
通常,在生产环境中,为了保证系统环境的安全和纯粹,是不建议安装其它软件或排查工具(如果可以安装,也是需要走审批流程)。 本文将介绍一种,不用安装Wireshark / tcpdump 等工具,使用Windows系统自带的 netsh trace 命令来获取网络包的步骤
73 32
|
2月前
|
存储 负载均衡 Java
如何配置Windows主机MPIO多路径访问存储系统
Windows主机多路径(MPIO)是一种技术,用于在客户端计算机上配置多个路径到存储设备,以提高数据访问的可靠性和性能。本文以Windows2012 R2版本为例介绍如何在客户端主机和存储系统配置多路径访问。
119 13
如何配置Windows主机MPIO多路径访问存储系统
|
1月前
|
机器学习/深度学习 并行计算 异构计算
WINDOWS安装eiseg遇到的问题和解决方法
通过本文的详细步骤和问题解决方法,希望能帮助你顺利在 Windows 系统上安装和运行 EISeg。
81 2
|
2月前
|
网络安全 Windows
Windows server 2012R2系统安装远程桌面服务后无法多用户同时登录是什么原因?
【11月更文挑战第15天】本文介绍了在Windows Server 2012 R2中遇到的多用户无法同时登录远程桌面的问题及其解决方法,包括许可模式限制、组策略配置问题、远程桌面服务配置错误以及网络和防火墙问题四个方面的原因分析及对应的解决方案。
|
2月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
73 4
|
3月前
|
数据安全/隐私保护 Windows
安装 Windows Server 2019
安装 Windows Server 2019