配置的管理在分布式应用环境中很常见,例如同一个应用系统需要多台server运行,但是他们运行的应用系统的某些配置项是相同的,如果要修改这些相同的配置项,那么就必须同时修改每台运行这应用系统的server,这样非常麻烦而且容易出错。
将配置信息保存在Zookeeper的某个目录节点中,然后让所有需要修改的server监控配置信息的变化,一旦配置信息发生变化,每台应用机器都会收到Zookeeper的通知,然后从Zookeeper获取新的配置信息应用到系统中。
集群管理
Zookeeper很容易实现集群管理的功能,如果有多台Server组成一个服务集群,那么必须要一个“总管”知道当前集群中每台机器的服务状态,一旦有机器不能提供服务,集群中其他机器必须知道,从而做出调整重新分配服务。同样增加集群的服务能力时,就会增加一台或多台Server,同样也必须让‘总管’知道。Zookeeper不仅能够维护当前集群中机器的服务状态,而且能够选出一个‘总管’,让这个总管来管理集群,这就是Zookeeper的另一个功能Leader Function。
共享锁
在同一个进程中很容易实现,但是在跨进程或者在不同server之间就不好实现了。Zookeeper却很容易实现这个功能,实现方式也是需要获得锁的。
Server创建一个ephemeral_sequential目录节点,然后调用getChildren方法获得当前的目录节点列表中最小的目录节点是不是