ZooKeeper
ZooKeeper 是一项集中式服务,用于维护配置信息,命名,提供分布式同步和提供 组 服务。
基本功能:
1、配置管理
ZooKeeper 为分布式系统提供了一种配置管理的服务:集中管理配置,即将全局配置信息保存在 ZooKeeper 服务中,方便进行修改和管理,省去了手动拷贝配置的过程,同时还保证了可靠和一致性
2、命名服务
分布式系统中,对应用或者服务进行统一命名,用于区分。
3、分布式锁
在分布式系统中,分布式程序分布在各个主机上的进程对互斥资源进行访问时也需要加锁。
分布式锁应当具备以下条件:
在分布式系统环境下,一个方法在同一时间只能被一个机器的一个线程执行;
高可用的获取锁与释放锁;
高性能的获取锁与释放锁;
具备可重入特性(可理解为重新进入,由多于一个任务并发使用,而不必担心数据错误);
具备锁失效机制,防止死锁;
具备非阻塞锁特性,即没有获取到锁将直接返回获取锁失败。
4、集群管理
在分布式系统中,由于各种各样的原因,导致集群中的节点增加或者减少,集群中有些机器需要感知到这种变化,然后根据这种变化做出对应的决策。
ZooKeeper 作为给分布式系统提供协调服务的工具被 kafka 所依赖.