Zookeeper概述以及应用场景
Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。说实话Apache基金会为互联网提供了太多的便利。好多的框架解决方案都来自于Apache
Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应,从而实现集群中类似Master/Slave管理模式
提供的服务包括:分布式消息同步和协调机制、服务器节点动态上下线、统一配置管理、负载均衡、集群管理等。
数据发布与订阅-集中式配置中心:
应用启动时主动到Zookeeper上获取配置信息,并注册Watcher监听。配置管理员变更Zookeeper配置节点的内容。Zookeeper推送变更到应用,触发Watcher回调函数,应用根据逻辑,主动获取新的配置信息,更改自身逻辑。
软负载均衡:
Register负责域名的注册,服务启动后将域名信息通过Register注册到Zookeeper相对应的域名服务下。Dispatcher负责域名的解析。可以实现软负载均衡,Scanner通过定时监测服务状态,动态更新节点地址信息。Monitor负责收集服务信息与状态监控。Controller提供后台Console,提供配置管理功能。
集群管理:
对每台工作的机器状态进行收集,对进群中的机器上下线操作,分布式任务状态的汇报。监控机器运行状态,有多少台机器正在运作等