Zookeeper笔记(简介与安装)

Zookeeper 简介

Zookeeper 的数据结构就像是一个树形文件结构,Zookeeper 可以保证数据在集群(Zookeeper 集群)之间的一致性(CAP理论 中的 CP)。
Zookeeper 它有三个角色:

  • Leader:数据总控节点,用于接受客户端连接请求,分发给所有 Follower 节点后,各个 Follower 节点进行数据更新操作并返回给 Leader 节点,如果半数以上的 Follower 节点更新成功,则认为此次更新操作成功。
  • Follower:Zookeeper 的 Leader 宕机后,所有的 Follower 角色内部会产生选举机制,选举出新的 Leader 用于总控
  • Observer:客户端,用于观察 Zookeeper 集群的数据发送变化。当数据产生变化则 Zookeeper 会主动发送 watch 事件给 Observer(客户端),用于对数据变化的后续处理;同时 Observer(客户端)也可以发送数据变更请求。

应用场景

管理一个分布式系统会遇到很多问题,而 Zookeeper 就是用来解决分布式协作中的难点的。
它的应用场景有:

  • 集群中 Master 节点管理:Master高可用(挂掉以后,谁来负责工作),保证唯一
  • 配置文件管理:统一把配置文件存放 Zookeeper ,由 Zookeeper 统一分发修改的内容到各台机器
  • 发布与订阅:发布者 producer 将数据发布到 Zookeeper 节点上,供订阅者 consumer 动态获取
  • 分布式锁:分布式环境访问同一个资源,由第三方配锁实现。此时即由 Zookeeper 统一进行协调,保证数据的一致性。

安装

官网 选择对应的版本下载,我这边使用以下命令下载:

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz

解压之后,进入解压目录下复制 confg/zoo_simple.confzoo.conf,并做以下修改:

# tickTime则是下述两个超时配置的基本单位,例如对于initLimit,其配置值为5,说明其超时时间为 2000ms * 5 = 10s
tickTime=2000
# 配置 Follower 服务器与 Leader 服务器之间建立连接后进行同步的最长时间
initLimit=10
# 配置follower和leader之间发送消息,请求和应答的最大时间长度
syncLimit=5
# 配置存储快照文件的目录,如果没有配置dataLogDir,那么事务日志也会存储在此目录
dataDir=/usr/local/zookeeper-3.4.6/zookeeperdata
# 客户端访问zk的端口
clientPort=2181

# server.A = B.C.D
# A 表示这个是第几号服务器
# B 表示服务器 IP 地址
# C 表示这个服务器与 Leader 服务器交换信息的端口
# D 表示万一集群中的 Leader 服务器挂了,需要另一个端口来重新进行选举,选出新的 Leader
server.0=192.168.245.128:2888:3888
server.1=192.168.245.129:2888:3888
server.2=192.168.245.130:2888:3888

创建上述对应的存放快照目录 /usr/local/zookeeper-3.4.6/zookeeperdata,同时在集群中的每一个服务器依次中执行以下命令:

# 第一台服务器执行以下命令
echo 0 >> /usr/local/zookeeper-3.4.6/zookeeperdata/myid
# 第二台服务器执行以下命令
echo 1 >> /usr/local/zookeeper-3.4.6/zookeeperdata/myid
# 第三台服务器执行以下命令
echo 2 >> /usr/local/zookeeper-3.4.6/zookeeperdata/myid

最后集群中的各自服务器打开相应的防火墙端口,并在解压目录下的 bin 目录,输入以下命令启动服务

./zkServer.sh start /usr/local/zookeeper-3.4.6/conf/zoo.cfg

启动后,输入以下命令查看状态:

./zkServer.sh status

关闭命令

./zkServer.sh stop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值