Zookeeper的整体介绍
一、Zookeeper是通常用来做什么
zookeeper的用途大概有如下这些:
(1) 元数据管理
例如Kafka, Canal等可以将一些元数据放入zookeeper中进行管理和维护
(2) 名称服务
例如Dubbo可以利用这个特性来把zookeeper用作服务注册中心
(3) 分布式锁
这个应用就比较广泛了,在分布式应用中,经常需要使用到分布式锁的场景
(4) 集群选举
如Kafka利用zookeeper来实现自动故障转移(也就是Master选举)
二、Zookeeper拥有哪些特性
(1) 顺序性
所有的写入请求全部有序
(2) 原子性
客户端的写入操作在所有机器中要么全部成功,要么全部失败
(3) 一致性
无论客户端连到哪个zookeeper结点上,看到的数据都是一样的
(4) 实时性
一旦数据发生变更,zookeeper要实时通知所有需要感知变更的客户端
(5) 高可用
如果其中的某一台机器宕机了,集群的数据不可以丢失
三、Zookeeper的常见部署架构及原理


浙公网安备 33010602011771号