Zookeeper 概述 & 架构 & 特性

目录

1.概述

2.架构

3.特性


概述

ZK作为一个分布式协调服务的框架。主要是为了解决分布式集群中应用系统的一致性问题,例如怎么避免多用户同时对数据操作从而造成脏写脏读。本质上来说是一个分布式的小文件存储系统(官方建议这里的小文件每个不要超过1MB)。提供基于类似于文件系统的目录树方式的数据存储,并且可以对节点进行有效的管理。维护和监控你存储数据的状态,从而达到基于数据的集群管理。

架构

在这里插入图片描述

Leader保证事物处理的顺序性,对于集群中所有事物的操作需要统一转发给Leader来执行。

Follower处理非事物性的请求,如果遇到事物请求就转发给Leader,同时Follower参加Leader的选举。另外,针对访问量比较大的ZK集群,增加Observer角色。

Leader选举机制解读:https://blog.csdn.net/aubekpan/article/details/87254980

Observer:观察ZK集群上数据的状态变化,并将这些状态同步,如果是非事务的请求可以单独处理。并且不参与投票只提供非事物服务,通常用于在不影响集群事物处理能力的前提下,提升集群的非事务处理能力,从来增加并发的读请求。

特性

1、全局数据一致性:每个服务器都保存一份相同的数据副本,客户端不管连到哪台展现的数据都是一致的。

2、可靠性:如果消息被其中一台服务器接受,那么将被所有的服务器接受。

3、顺序性:分全局有序和偏序两种,全局有序的情况是如果一个节点上消息A在消息B前发布,则所有节点的上消息A在消息B前发布。偏序是指如果一个消息B在消息A后被同一个客户端发布,A必将排在B前面。

4、数据更新原子性:一次数据更新要么成功(半数以上节点成功),要么失败,不存在中间状态。

5、实时性:ZK保证客户端将在一个时间间隔范围内获得服务器更新信息,或者服务器失败。

猜你喜欢

转载自blog.csdn.net/aubekpan/article/details/90904307