欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

八分钟了解动物园管理员

最编程 2024-06-03 10:52:54
...

ZooKeeper 概述

ZooKeeper 是一个开源的分布式协调服务,ZooKeeper 框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper 成为 HadoopHBase 和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase 使用 ZooKeeper 跟踪分布式数据的状态。ZooKeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

原语: 操作系统或计算机网络用语范畴。是由若干条指令组成的,用于完成一定功能的一个过程。具有不可分割性·即原语的执行必须是连续的,在执行过程中不允许被中断。

ZooKeeper 是一个典型的分布式数据一致性解决方案,分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

Zookeeper 一个最常用的使用场景就是用于担任服务生产者和服务消费者的注册中心。 服务生产者将自己提供的服务注册到 Zookeeper 中心,服务的消费者在进行服务调用的时候先到 Zookeeper 中查找服务,获取到服务生产者的详细信息之后,再去调用服务生产者的内容与数据。如下图所示,在 Dubbo 架构中 Zookeeper 就担任了注册中心这一角色。

特点

Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群

集群中只要有半数以上的节点存活,Zookeeper 集群就能正常服务

全局数据一致:每个 Server 保存一份相同的数据副本,Client 无论连接到那个 Server,数据都是一致的

更新请求顺序进行,来自同一个 Client 的更新请求按其发送顺序依次执行

数据更新原子性,一次数据更新要么成功,要么失败

实时性,在一定时间范围内,Client 能读到最新数据

数据结构

Zookeeper 数据模型的结构于Unix系统文件类似,整体上可以看成是一棵树,每个节点称作一个 ZNode。每个 ZNode 默认只能存储 1MB 的数据,每个 ZNode 都可以通过其路径得到唯一标识。

应用场景

提供的服务包括:统一命名服务,统一配置管理,统一集群管理,服务器节点动态上下线,软负载均衡等

统一命名服务

统一配置管理

服务器动态上下线

软负载均衡

来源:www.jianshu.com/p/c6c48ee5e…


我的微信公众号:Java架构师进阶编程
专注分享Java技术干货,期待你的关注!