Zookeeper的学习

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zookeeper的学习相关的知识,希望对你有一定的参考价值。

1.Zookeeper是什么?

引用官方的说法:“Zookeeper是一个高性能,分布式的,开源分布式应用协调服务。它提供了简单原始的功能,分布式应用可以基于它实现更高级 的服务,比如同步,配置管理,集群管理,名空间。它被设计为易于编程,使用文件系统目录树作为数据模型。服务端跑在java上,提供java和C的客户端 API”。

2.Zookeeper总体结构

Zookeeper服务自身组成一个集群。Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中重新选举新的leader。

Zookeeper逻辑图如下:

技术分享

(1).客户端可以连接到每个server,每个server的数据完全相同。

(2).每个follower都和leader有连接,接受leader的数据更新操作。

(3).Server记录事务日志和快照到持久存储。

(4).大多数server可用(2n+1个服务允许n个失效),整体服务就可用。

3.Zookeeper数据模型

Zookeeper表现为一个分层的文件系统目录树结构(不同于文件系统的是,节点可以有自己的数据,而文件系统中的目录节点只有子节点)。

圆形节点可以含有子节点,多边形节点不能含有子节点。一个节点对应一个应用,节点存储的数据就是应用需要的配置信息。

Zookeeper 特点

(1).顺序一致性:按照客户端发送请求的顺序更新数据。

(2).原子性:更新要么成功,要么失败,不会出现部分更新。

(3).单一性 :无论客户端连接哪个server,都会看到同一个视图。

(4).可靠性:一旦数据更新成功,将一直保持,直到新的更新。

(5).及时性:客户端会在一个确定的时间内得到最新的数据。

 

以上是关于Zookeeper的学习的主要内容,如果未能解决你的问题,请参考以下文章

在ansible模板中使用动态组名称

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

zookeeper学习笔记

学习 PyQt5。在我的代码片段中找不到错误 [关闭]

学习笔记:python3,代码片段(2017)