Zookeeper.
什么是Zookeeper.
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
主要用来解决分布式集群中应用系统的一致性问题和单点故障问题
ZooKeeper的基本运转流程:
1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的执行ID,类似root权限。
5、集群中大多数的机器得到响应并接受选出的Leader。
Zookeeper集群采用主从架构;
- 由一个Leader 和 多个Follower组成,还可增加Observer
- Leader可读可写(可接收事务性请求和非事务性请求)
- Follower只能读,但可转发写
Zookeeper使用.
下载.
解压.
创建 conf/zoo.cfg
配置文件(可以拷贝zoo_sample.cfg
).
# 每一个节拍的毫秒数
tickTime=2000
# 初始的节拍数
# 同步阶段可以采取
initLimit=10
# 可以在两者之间传递的节拍数发送请求并获得确认
syncLimit=5
# 存储快照的目录。
# 不要使用/tmp存储,/tmp只是一个例子。
dataDir=./tmpdata
# 客户机连接的端口
clientPort=2181
# 客户端连接的最大数目。
# 如果你需要处理更多的客户,增加这个
#maxClientCnxns=60
#
# 在开启自动督促之前,请务必阅读管理员指南中的维护部分。
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# 要在dataDir中保留的快照数量
#autopurge.snapRetainCount=3
# 清除任务间隔(以小时为单位)
# 要在dataDir中保留的快照数量
#autopurge.purgeInterval=1
## 度量供应商
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true
客户端常见命令.
常见命令 | 命令描述 |
---|---|
ls / | 使用ls命令来查看Zookeeper中所包含的内容 |
ls2 / | 查看当前节点数据并能看到更新次数等数据 |
create /zk “test” | 在当前目录创建一个新的Znode节点“ zk ” 以及他关联的字符串 test |
get /zk | 获取zk所包含的信息 |
set /zk “ zzz “ | 将节点zk 关联的字符串设置为 zzz |
delete /zk | 将节点Znode - zk 删除 |
rmr | 将节点Znode递归删除 |
help | 帮助命令 |