码迷,mamicode.com
首页 > 其他好文 > 详细

Zookeeper的学习

时间:2016-01-25 21:05:49      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:

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的学习

标签:

原文地址:http://www.cnblogs.com/weiguo21/p/5158346.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!