zookeeper集群部署


介绍

ZooKeeper 是一个开源的分布式协调服务,旨在提供高性能、高可用性、可靠性和一致性的分布式应用程序协调服务。它由 Apache 软件基金会管理,并作为一个顶级项目进行维护。ZooKeeper 主要用于解决分布式系统中的一致性问题,如领导选举、配置管理、分布式锁、命名服务等。

以下是 ZooKeeper 的一些主要特点和功能:

  1. 分布式协调:ZooKeeper 提供了一个分布式协调服务,允许应用程序在分布式环境中协调和同步操作。它通过提供共享的数据节点来实现各种分布式协作模式,如分布式锁、分布式队列等。

  2. 高性能:ZooKeeper 的设计目标之一是提供高性能的服务。它使用了轻量级的协议和高效的数据存储结构,以确保快速的数据读写和低延迟的响应。

  3. 高可用性:ZooKeeper 使用了多副本复制机制来保证数据的可靠性和高可用性。它将数据复制到多个节点上,并使用选举算法来选择一个主节点来处理客户端请求。如果主节点发生故障,ZooKeeper 会自动选举新的主节点来接管服务。

  4. 一致性:ZooKeeper 保证了数据的一致性和顺序性。它使用了类似于共识算法的技术来确保在分布式环境中对数据的修改操作是原子性和有序的。

  5. 轻量级:ZooKeeper 的代码库相对较小,并且没有太多的依赖关系,因此它的部署和维护相对简单。同时,ZooKeeper 提供了简洁的 API 和易于使用的命令行工具,方便开发人员进行操作和管理。

  6. 灵活性:ZooKeeper 提供了灵活的数据模型和操作接口,可以根据应用程序的需求来进行定制和扩展。它支持观察者模式和通知机制,允许客户端监控数据节点的变化并及时做出响应。

环境

master(A):172.17.246.69
slave1(B):172.17.246.70
slave2(C):100.255.100.251

下载ZooKeeper

最新版本:官网下载地址:https://dlcdn.apache.org/zookeeper/
老版本:官网下载地址:http://archive.apache.org/dist/zookeeper/
本文下载到的安装包名为:zookeeper-3.4.12.tar.gz

上传安装包,并解压

tar xf zookeeper-3.4.12.tar.gz

配置zoo.cfg

入到zookeeper解压目录下

三台都需要下边配置 # 反向代理ubuntu

将 zoo_sample.cfg 文件复制并重命名为 zoo.cfg 文件。

cp conf/zoo_sample.cfg conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/data/zookeeper/data
# the port at which the clients will connect
clientPort=2181
server.1=172.17.246.69:2888:3888
server.2=172.17.246.70:2888:3888
server.3=10.255.100.251:2888:3888

myid里要与server,XXX=172.17.246.XX一致

A上执行

mkdir -p /data/zookeeper/data/
echo "1" > /data/zookeeper/data/myid

B上执行

mkdir -p /data/zookeeper/data/
echo "2" > /data/zookeeper/data/myid

C上执行

mkdir -p /data/zookeeper/data/
echo "3" > /data/zookeeper/data/myid

配置环境变量

#set zookeeper environment
export ZK_HOME=/data/zookeeper/
export PATH=$PATH:$ZK_HOME/bin

启动命令:

zkServer.sh start

停止命令:

zkServer.sh stop

重启命令:

zkServer.sh restart

查看集群节点状态:

zkServer.sh status

配置使用systemd启停ZooKeeper

创建并编辑/usr/lib/systemd/system/zkServer.service文件,文件内容如下:

[Unit]
Description=ZooKeeper Server
Documentation=https://zookeeper.apache.org/
After=network-online.target
Wants=network-online.target

[Service]
Type=forking
#User=zookeeper
#Group=zookeeper
WorkingDirectory=/data/zookeeper
Environment=ZOO_LOG_DIR=/data/zookeeper/logs
ExecStart=/data/zookeeper/bin/zkServer.sh start
ExecStop=/data/zookeeper/bin/zkServer.sh stop
#ExecRestart=/data/zookeeper/bin/zkServer.sh restart
#ExecStatus=/data/zookeeper/bin/zkServer.sh status
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

使用systemd启停zookeeper。
启动

systemctl start zkServer

停止

systemctl stop zkServer

设置为开机启动

systemctl enable zkServer.service

ZooKeeper 的性能调优方向

对 ZooKeeper 的性能进行调优可以帮助提高集群的吞吐量、减少延迟,并提升系统的稳定性。以下是一些常见的 ZooKeeper 性能调优策略:

  1. 适当配置硬件资源:ZooKeeper 的性能受到硬件资源的限制,因此首先需要确保集群的硬件资源足够。包括 CPU、内存、磁盘 I/O 等方面的资源。对于磁盘,建议使用高性能的 SSD 硬盘,以提升写入和读取的速度。

  2. 合理配置网络:ZooKeeper 集群的性能也受到网络的影响,因此需要确保集群节点之间的网络连接质量良好,延迟较低。可以考虑使用高性能的网络设备,并将 ZooKeeper 节点部署在同一数据中心或同一局域网内。

  3. 优化配置文件参数:ZooKeeper 的配置文件中包含一些参数可以用来优化性能,例如:

    • tickTime:设置心跳间隔,可以根据实际情况调整,默认为 2000ms。
    • initLimitsyncLimit:分别设置初始同步限制和同步限制,可以根据集群规模和负载情况适当调整。
    • maxClientCnxns:限制单个客户端的最大连接数,防止客户端过多导致服务器负载过高。
  4. 合理分配内存:ZooKeeper 的性能受到 JVM 内存的影响,可以通过设置 JVM 的堆内存大小来优化性能。一般情况下,建议为 ZooKeeper 分配足够的内存,以减少垃圾回收对性能的影响。

  5. 使用 SSD 硬盘:ZooKeeper 集群的性能也受到磁盘 I/O 的影响,因此使用 SSD 硬盘可以显著提高写入和读取的速度,从而提升整个集群的性能。

  6. 监控和调优:定期监控 ZooKeeper 集群的性能指标,如吞吐量、延迟、负载等,及时发现和解决性能瓶颈。可以使用一些监控工具和性能分析工具来帮助进行调优,如 Prometheus、Grafana 等。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XMYX-0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值