Zookeeper简介
Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等等。
Zookeeper就是用来做第三方的,起作用只有俩个。
1、管理(存储、读取)用户提交的数据。
2、并为数据提供监听功能。(监听服务器是有正常)Zookeeper本来就是一个分布式集群(只要有半数以上的节点存活,zookeeper就能正常*服务)
Zookeeper服务的场景涵盖:主从协调、服务器节点的动态上下线、同意配置管理、分布式共享锁、同意服务名称。
Keepalived也是一种保护数据的软件,通过建立虚拟的ip地址来访问别人,而不是用作服务器来让客户端进行访问。所以在保护服务器数据时这个没用。
Zookeeper基本概念
zk角色
Zookeeper中的角色主要有以下三类,如下表所示:
zk service网络结构
Zookeeper的工作集群可以简单分成两类,一个是Leader,唯一一个,其余的都是follower,这样才能确定Leader是通过内部选举确定的。
工作流程
Leader工作流程 |
—恢复数据;
—维持与Learner的心跳,接收Learner请求并判断Learner的请求消息类型;
—Learner的消息类型主要有PING消息、REQUEST消息、ACK消息、REVALIDATE消息,根据不同的消息类型,进行不同的处理。
PING 消息是指Learner的心跳信息;
REQUEST消息是Follower发送的提议信息,包括写请求及同步请求;
ACK消息是Follower的对提议 的回复,超过半数的Follower通过,则commit该提议;
REVALIDATE消息是用来延长SESSION有效时间。
Leader的工作流程简图具体如下所示: