题目拓展讲解—zookeeper 怎么做服务的注册与发现,注册了哪些信息?
相关历史文章目录
面试合集
本篇文章从基础概念入手,下一篇继续将名词概念具体化.
zookeeper入门介绍和基本概念
1.zookeeper的由来
雅虎的开发人员就试图开发一个通用的无单点问题的分布式协调框架,来源于Yahoo;
2.zookeeper的设计目的
将复杂的且容易出错的分布式一致性服务封装起来,构成一个高效可用的原语集,并提供给用户一系列简单可用的接口;
原语: 操作系统或计算机网络用语范畴。它是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性,即原语的执行必须是连续的,在执行过程中不允许被中断。
3.利用zookeeper可以干什么?
zookeeper 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 zooKeeper 实现诸如:
数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
4.关于zookeeper的一些重要概念
- zookeeper本身是一个分布式程序,而且只要半数以上节点存活,zookeeper就能够正常的提供服务.为了保证高可用,最好是以集群形态来部署zookeeper,这样只要其中大部分机器是可用的(能够容忍一定的机器故障),那么zookeeper本身仍然是可用的.
- zookeeper将数据保存在内存中,这也就保证了高吞吐量与低延迟,与此同时,有利有弊,内存限制了能够存储的容量不能太大,此限制也是保持Znode中存储的数据量较小的一个原因.
- zookeeper是高性能的.在**"读"多于"写"的场景中尤其的高性能**,因为"写"会导致所有的服务器间同步状态."读"多于"写"是协调服务的典型场景.
- zookeeper有临时节点的概念.当创建临时节点的客户端会话一直保持活动,临时节点就会一直存在.当该会话终结时,临时节点被删除.持久节点是指一旦这个Znode被创建了,除非主动进行Znode移除造作,否则这个Znode将一直保存在zookeeper上.
5.zooKeeper 底层其实只提供了两个功能:①管理(存储、读取)用户程序提交的数据;②为用户程序提交数据节点监听服务。
5.zookeeper的几大特点
1.顺序一直性
包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。
2.原子性
更新只能成功或者失败,没有中间状态。
3.单一系统映像
无论客户端连到哪一个 zookeeper 服务器上,看到服务端的数据模型是一致的。
4.可靠性
如果消息m被到一台服务器接受,那么它将被所有的服务器接受。