1、Zookeeper的概述
Zookeeper是一个开源的分布式 的,为分布式框架提供协调服务 的项目 关键字:分布式: 多台服务器共同完成一件复杂的任务 在上面的图看出:Zookeeper像个铲屎官 ,为各种分布式框架(动物 )提供服务的 下面简单了解一下Zookeeper的工作机制
Zookeeper工作机制
Zookeeper 是基于观察者设计 的分布式管理框架(一人在干活,一人在观察监督),是负责存储 和管理 大家都关心的数据 ,接收观察者的注册 ,一旦数据发生改变,Zookeeper负责通知在Zookeeper上注册 1)服务器把基本信息注册到Zookeeper上,创建节点 2)客户端获取在线的服务器列表,并注册监听 3)如果服务器下线,Zookeeper通知客户端 ,客户端重新获取在线服务器列表,并监听 从上面的图明显感知zookeeper是一个文件系统 和 通知机制 的框架
2、Zookeeper的特点
1)Zookeeper:一个领导者 (Leader),多个跟随者 (follower)组成集群 2)集群中只要有超过半数以上节点存活 ,Zookeeper集群就可以正常服务,Zookeeper适合安装奇数台服务器 如果是偶数台 ,当等于半数时Zookeeper还是无法正常服务,而且还浪费资源 3)全局数据一致 :每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致 的 4)更新请求顺序执行,来自同一个Client的更新请求按发送的顺序依次执行,类似于队列,先进先出 5)数据更新原子性 :一次数据更新要么全部成功,要么全部失败 6)实时性 :在一定时间范围内,Client能读到最新数据(server之间的数据同步快 )
3、数据结构
ZooKeeper数据模型的数据结构和linux的文件系统非常类似 ,类似一颗树的结构,每一个节点称作ZNode,每个ZNode节点默认能够存储1MB 的数据.
4、应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线,软负载均衡等
4.1、统一命名服务
4.2、统一配置管理
分布式环境下,配置文件同步很常见,一般集群中 ,配置文件是一直的,配置文件修改后,希望快速同步到各个节点上 配置管理交给zookeeper实现 : 1)将配置信息写入zookeeper上的一个Znode 2)各个客户端服务器监听这个Znode 3)一旦Znode中的数据被修改 ,Zookeeper将通知各个客户端服务器
4.3、统一集群管理
4.4、服务器节点动态上下线
4.5、软负载均衡
在Zookeeper中记录每台服务器的访问数 ,让访问数最少的服务器 去处理最新的客户端请求
|