zookeeper系列--分布式协调
协调服务的功能
在分布式架构中,每个服务器或者服务之间信息的协调和管理是非常有必要的。
常见的分布式协调服务有Google的Chubby,Apache的ZooKeeper
我们先从zookeeper的几个功能来了解zookeeper
1. 名称服务
什么是名称服务?比如DNS将域名映射到一个IP、手机通讯录将人命映射到手机号...诸如此类功能就是名称服务,在分布式系统中,zookeeper的名称服务是通过名称来跟踪一些服务器或者服务的运行状态。
2. 分布式锁
在一台机器一个服务上,我们可以用高并发中学到的对象锁,重入锁等知识,来完成不同线程对同一资源的顺序调度。那么在分布式架构下,我们面对的问题要复杂得多,这时候不同进程对于同一资源的调度,就只能使用分布式锁来完成协调,zookeeper提供一种简单的方式来实现分布式互斥(distributed mutexes
3. 配置管理
zookeeper通过集中式存储和管理分布式系统的配置,加入加入一个新的服务节点(znode),那么可以立即使用zookeeper的最新配置,也可以通过一个zookeeper客户端来更改集中式配置
4. 领导者选举
当分布式系统中一个服务出现故障(比如停机),zookeeper通过领导者选举来转移故障,使系统继续运行