ZooKeeper简介
ZooKeeper的主要作用是在分布式系统中协调多个任务。一个任务是指包含多个进程的任务,这个任务可以是协作或者竞争性质,协作意味多个进程需要一同处理某些事情,竞争则是多个进程不能同时处理工作,一个进程必须等待另一个进程。
ZooKeeper不适用于海量数据存储,海量数据存储可以使用数据库或者分布式文件系统。
分布式系统中的进程通信有两种方式:1、直接网络信息交换;2、共享读取空间。
在实际真实的系统中,需要考虑:消息延迟,处理器性能,以及时钟偏移问题。
以主从应用架构为例,需要考虑一下几个问题:
1、 消息延迟:主节点崩溃,从节点崩溃,以及通信中断;
2、 处理器性能:任务分配
3、 时钟偏移:系统时间不同步
主从应用需要考虑的需求:
1、 主节点选举;
2、 崩溃检测(主节点必须有检测从节点崩溃或失去连接的能力);
3、 组成员关系管理;
4、 元数据管理
基础
ZooKeeper是以类似文件系统结构来存储数据,这样就可以保有文件系统的特性。针对ZooKeeper的znode节点,用户可以进行create /path data,delete /path ,exists /path, setData /path data,getData