简介
- 中间件,提供协调服务。
- 作用于分布式系统,发挥其优势,可以为大数据服务。
- 支持Java,提供Java和C语言的客户端API。
Zookeeper的特性
- 一致性:数据一致性(非强一致性),数据按照顺序分批入库。
- 原子性:事务要么成功,要么失败,不会局部化。
- 单一视图:客户端连接集群中的任一zk节点,数据都是一致的。
- 可靠性:每次对zk的操作状态都会保存在服务端。
- 实时性:客户端可以读取到zk服务端的最新数据。
Zookeeper作用
- master节点选举:主节点挂了后,从节点就会接手工作,并且保证这个节点是唯一的,即首脑模式,从而保证我们的集群是高可用的。
- 统一配置文件管理:即只需要部署一台服务器,则可以把相同的配置文件同步更新到其他所有服务器,此操作在云计算中运用很多(如修改了redis统一配置)。
- 发布与订阅,类似消息队列,dubbo发布者将数据存在znode中,订阅者会读取这个数据。
- 提供分布式锁,分布式环境中不同进程间争夺资源,类似于多线程中的锁。
- 集群管理,集群中保证数据的强一致性。
- 会将主节点的数据同步到子节点中。