西安制作手机网站,外贸网站服务商,公众号添加wordpress,怎样把产品放到网上销售文章目录 1. Zookeeper介绍2、ZooKeeper数据结构3、Zookeeper集群架构 1. Zookeeper介绍
ZooKeeper 是一个开源的分布式协调框架#xff0c;是Apache Hadoop 的一个子项目#xff0c;主要用来解决分 布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易… 文章目录 1. Zookeeper介绍2、ZooKeeper数据结构3、Zookeeper集群架构 1. Zookeeper介绍
ZooKeeper 是一个开源的分布式协调框架是Apache Hadoop 的一个子项目主要用来解决分 布式集群中应用系统的一致性问题。Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性 服务封装起来构成一个高效可靠的原语集并以一系列简单易用的接口提供给用户使用。 官方https://zookeeper.apache.org/
ZooKeeper本质上是一个分布式的小文件存储系统Zookeeper文件系统监听机制。提供基 于类似于文件系统的目录树方式的数据存储并且可以对树中的节点进行有效管理从而用来维护和 监控存储的数据的状态变化。通过监控这些数据状态的变化从而可以达到基于数据的集群管理、统 一命名服务、分布式配置管理、分布式消息队列、分布式锁、分布式协调等功能。 Zookeeper从设计模式角度来理解是一个基于观察者模式设计的分布式服务管理框架它负责 存储和管理大家都关心的数据然后接受观察者的注册一旦这些数据的状态发生变化Zookeeper 就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。
2、ZooKeeper数据结构
ZooKeeper 数据模型的结构与 Unix 文件系统很类似整体上可以看作是一棵树每个节点称做一个 ZNode。
ZooKeeper的数据模型是层次模型层次模型常见于文件系统。层次模型和key-value模型是两种主流 的数据模型。ZooKeeper使用文件系统模型主要基于以下两点考虑 1文件系统的树形结构便于表达数据之间的层次关系 2文件系统的树形结构便于为不同的应用分配独立的命名空间( namespace )
ZooKeeper的层次模型称作Data TreeData Tree的每个节点叫作Znode。不同于文件系统每个节 点都可以保存数据每一个 ZNode 默认能够存储 1MB 的数据每个 ZNode 都可以通过其路径唯一 标识每个节点都有一个版本(version)版本从0开始计数。
一个znode可以使持久性的也可以是临时性的:
持久节点(PERSISTENT): 这样的znode在创建之后即使发生ZooKeeper集群宕机或者client宕机 也不会丢失。临时节点(EPHEMERAL ): client宕机或者client在指定的timeout时间内没有给ZooKeeper集群 发消息这样的znode就会消失。 如果上面两种znode具备顺序性又有以下两种znode :持久顺序节点(PERSISTENT_SEQUENTIAL): znode除了具备持久性znode的特点之外znode 的名字具备顺序性。临时顺序节点(EPHEMERAL_SEQUENTIAL): znode除了具备临时性znode的特点之外zorde 的名字具备顺序性。 zookeeper主要用到的是以上4种节点。Container节点 (3.5.3版本新增)Container容器节点当容器中没有任何子节点该容器节点 会被zk定期删除定时任务默认60s 检查一次)。 和持久节点的区别是 ZK 服务端启动后会有一个单 独的线程去扫描所有的容器节点当发现容器节点的子节点数量为 0 时会自动删除该节点。可以 用于 leader 或者锁的场景中。TTL节点: 带过期时间节点默认禁用需要在zoo.cfg中添加 extendedTypesEnabledtrue 开 启。 注意TTL不能用于临时节点
3、Zookeeper集群架构
3.1 集群角色 Leader 领导者 事务请求写操作的唯一调度者和处理者保证集群事务处理的顺序性集群内部各个服务器的 调度者。对于create、setData、delete等有写操作的请求则要统一转发给leader处理leader需要 决定编号、执行操作这个过程称为事务。 Follower: 跟随者 处理客户端非事务读操作请求可以直接响应转发事务请求给Leader参与集群Leader选举 投票。 Observer: 观察者 对于非事务请求可以独立处理读操作对于事务性请求会转发给leader处理。Observer节点接收 来自leader的inform信息更新自己的本地存储不参与提交和选举投票。通常在不影响集群事务处 理能力的前提下提升集群的非事务处理能力。