zookeeper的特点及应用场景

目录

  • 描述:
  • zookeeper的特点
  • zookeeper的数据结构
  • zookeeper的应用场景

描述:

  • zk是一个基于观察者模式设计的分布式服务管理框架
  • 它负责存储和管理大家都关心的数据。
  • 然后接受观察者的注册,
  • 一旦zk中的注册的对象配置信息发生变化,zk就会通知这些注册的服务器做出相应的反映。
  • zk由文件系统+通知机制组成~

图解:
zookeeper的特点及应用场景_第1张图片

zookeeper的特点

特点:

  • zk的集群中只有一个leader,当且仅当集群中有半数以上的节点存活,zk的集群服务才能正常启用。
  • 所有节点数据都是一致的,在一定时间范围内,无论是从zk节点读取数据,都是最新的数据
  • 当一个节点收到了一个client的多次请求,该节点会按照client请求发送的顺序依次执行
  • zk默认启用了事务,一次更新要么都成功,要么都失败

zookeeper的特点及应用场景_第2张图片

设计目的:

  • 一致性:client不论连接到哪个Server,展示给它都是同一个视图
  • 可靠性:具有简单、健壮、良好的性能,如果消息m被一台服务器接受,那么它将被所有的服务器接受。
  • 实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
  • 等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
  • 原子性:更新只能成功或者失败,没有中间状态。
  • 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

zookeeper的数据结构

  • zk数据模型的结构与Unix文件系统类似,整体上可看做“一棵树”,
  • 每个节点称作一个ZNode,
  • 每一个ZNode默认能够存储1MB数据,
  • 每个ZNode都可以通过路径唯一标识
    zookeeper的特点及应用场景_第3张图片

zookeeper的应用场景

1、发布/订阅

  • 发布者将数据发布到zookeeper的一个节点或者一系列节点上,提供订阅者进行数据订阅,从而实现动态更新数据的目的。实现配置信息的集中式管理和数据的动态更新

2、服务动态上下线

3、负载均衡
zookeeper的特点及应用场景_第4张图片

你可能感兴趣的:(⭐【zookeeper】,zookeeper的特点,zookeeper的设计目的,zookeeper的应用场景)