Zookeeper 的介绍
Zookeeper 是开源的分布式协同服务,其由yahoo开发,后为apache的开源项目。其通过一组原语,为大型分布式系统提供可靠的协同服务。
Zookeeper到底做什么用的?
首先看一下zookeeper的典型的应用场景:
1) 配置管理
多个服务器共享一个配置文件,当配置文件中的一个选项修改时,就需要立即同步到其他的机器上。这个问题一般的实现方法是:选择一个配置管理节点,监控该节点配置文件的变换,当有变化后,通过网络同步到所有的服务器上,就是一个发布/订阅模型。这样实现的问题是:1)你需要自己写监控,同步的程序2)当配置节点宕机后,有单点故障问题。而用zookeeper,这个都不需要你从头做起了,zookeeper提供了自己的数据模型和一组原语,来帮你轻松实现问题,并且提供可靠的服务(消除单点故障)。
2) 分布式锁服务
我们都知道lock,在本地多线程的应用程序当中,多个线程访问同一共享资源,需要加锁,否则会出现无法预知的结果。同一的,在分布式环境下,多个client端要更改服务端的共享资源,也必须加锁。
3) Barrier服务