1. 什么是zookeeper
zookeeper
ZooKeeper 是Hadoop下的一个子项目,是一个分布式的,开放源码的分布式应用程序协调服务。提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
一般奇数个节点,最少3个,该框架能很好的保证分布式环境中数据的一致性
分布式应用程序
应用程序分布在不同计算机上,通过网络来共同完成一项任务。通常为服务器/客户端模式。
hadoop
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
分布式文件系统
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。
例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样
分布式系统
分布式系统(distributedsystem)是建立在网络之上的软件系统。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物理和逻辑资源,可以动态的分配任务,分散的物理和逻辑资源通过计算机网络实现信息交换。
2. zookeeper的应用场景
通常不会用于存储大量数据,一般存一些配置信息,注册信息。能动态实时的监听节点的变更,然后反馈给服务器端,服务器端第一时间做出相应
用于担任服务生产者和服务消费者的注册中心,服务生产者将自己提供的服务注册到Zookeeper中心,服务的消费者在进行服务调用的时候先到Zookeeper中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据
配置管理
集群管理
发布与订阅
数据库切换
分布式日志的收集
分布式锁
3. zk可以实现的
达成共识、集群管理、leader选举
leader选举
在所有的节点中选择一个作为主节点(leader),其他的为从节点(follower)
当作为主节点的服务器挂掉时,在剩下的服务器中选择一台升级为leader,只要正常的服务器数量在一半以上,就可以正常提供服务
4. zk组成
leader、follower、observer。其中follower和observer统称为learner(学习者)
leader:负责客服端的写类型请求
follower:负责客户端的读类型请求,参与leader的选举
observer:特殊的follower,可以接受客户端的读请求,但不参与选举(扩容系统支撑能力,提高了读取速度。不接受任何同步的写入请求,只负责与leader同步数据)