http://www.csdn.net/article/2014-01-02/2817944-zookeeper
在Hadoop的学习过程中,Zookeeper是让很多初学者困惑的技术,远程调用服务是一个很适合zookeeper应用的场景,这里从自己设计的远程调用服务架构谈起,详细介绍了Zookeeper这一应用场景。
Zookeeper技术详解
在远程服务里Zookeeper使用在远程调用管理组件里,而服务调用者则是Zookeeper的客户端,远程调用管理组件也是远程调用服务的核心所在,如果远程调用管理组件在运行时挂掉了,那么整个应用也将不可用,因此远程调用管理组件必须是可靠的,这种可靠性的要求甚至高于服务提供者和服务调用者的可靠性级别,因此远程调用管理组件的设计必须是分布式的,而且一定要是可靠的分布式。
远程调用管理组件是一个完全符合Zookeeper场景的应用或者说是一个标准的Zookeeper应用,为了便于后面的论述,这里我的更进一步的讲解下远程调用管理组件的功能。从前面的叙述,我们知道了远程调用管理组件核心作用是存储服务提供者和服务调用者通讯的配置信息,例如存储服务提供者的IP地址和端口,记录服务提供者的服务类别,它还记录服务调用者的IP地址和端口号(这个信息是在远程调用管理组件的Web管理系统录入的)以及服务调用者和服务提供者的对照关系。对于服务提供者,远程调用管理组件还提供心跳机制检测服务提供者的健康状态,如果远程调用管理组件发现服务提供者一些服务器出现问题了,它会及时更新服务提供者的配置信息,并将这些变化及时推送给服务调用者。由上所述,从配置信息存储的角度,远程调用管理组件其实就是一个远程存储配置信息的系统,而心跳机制和推送机制这是一种观察者模式,而上面这些功能都是分布式环境的功能,需要很高的可靠性。Zookeeper最典型的一个应用就是可以做分布式应用的配置服务,具体点就是向我们平时写的配置文件,到了分布式系统里也需要一个独立的系统来完成,并且是动态的配置服务。