初识ZooKeeper

本文涉及的产品
云原生网关 MSE Higress,422元/月
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
注册配置 MSE Nacos/ZooKeeper,182元/月
简介: 特点、应用场景

一.ZooKeeper概述

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。

ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

ZooKeeper包含一个简单的原语集,提供Java和C的接口。

ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在$zookeeper_home\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

二.ZooKeeper特点

1、ZooKeeper:一个领导者,多个跟随者组成的集群

2、集群只要有半数节点存活,那么ZooKeeper集群就能正常服务,所以说ZooKeeper适合奇数台服务器。

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

4、更新请求顺序执行,来自同一个Client的更新请求按顺序依次执行。

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

6、实时性,ZooKeeper的同步时间很快,任何一台服务器保存了数据,其他服务器也会保存相同数据。

三.ZooKeeper数据结构

ZooKeeper的数据结构和Unix文件系统很类似,整体上可以看做一棵,每个节点称作ZNode,每个ZNode默认能够存储1M的数据,每个ZNode都可以通过路径唯一标识

四.ZooKeeper应用场景

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

1.统一命名服务

在分布式环境下,通常对服务进行统一命名,便于识别。例如:IP不易记,域名易记。

2.统一配置管理

(1)分布式环境下,配置文件同步非常常见

  • 一般要求一个集群中,所有节点的配置信息是一致的。如Kafka集群。
  • 对配置文件修改后,希望可以快速同步到各个节点上。

(2)配置信息可由ZooKeeper实现

  • 可将配置信息写入ZooKeeper的一个ZNode。
  • 客户端服务器监听这个Znode。
  • 一旦ZNode中的数据发生修改,ZooKeeper会通知客户端服务器。

3.统一集群管理

(1)分布式环境下,需要实时掌握每个节点的状态。

  • 可根据节点实时状态做出一些调整。

(2)ZooKeeper可以实现实时监控节点的状态变化。

  • 可将节点信息写入ZooKeeper中的一个ZNode。
  • 监听这个ZNode可获取实时的状态变化。

4.服务器节点动态上下线

5.软负载均衡

在ZooKeeper中记录每台服务器的访问数量,让访问最少的服务器去处理最新的客户端请求。

目录
相关文章
|
移动开发 前端开发 JavaScript
分享45个Bootstrap模板,总有一款适合您
分享45个Bootstrap模板,总有一款适合您
339 5
|
Ubuntu Linux 数据安全/隐私保护
Win10安装Linux,无需安装虚拟机版
win10,linux,虚拟机,ubuntu
1847 0
Win10安装Linux,无需安装虚拟机版
|
26天前
|
Java API 数据处理
掌握Java Stream API:告别繁琐循环,拥抱高效集合处理
掌握Java Stream API:告别繁琐循环,拥抱高效集合处理
320 113
|
7月前
|
存储 设计模式 缓存
OkHttp源码解析(小白必看,建议收藏)
本文详细解析了OkHttp3的源码及其实现机制,适合初学者学习。文章从Request与Response结构、HTTPS握手过程、响应码含义、Socket概念到责任链模式的应用逐一讲解。重点分析了OkHttp的工作流程:通过Call对象的enqueue()或execute()方法发起请求,核心是getResponseWithInterceptorChain(),利用拦截器链处理请求,包括用户自定义拦截器、重试、桥接、缓存、连接等步骤。最后还探讨了Dispatcher的任务调度机制。
761 71
|
SQL 关系型数据库 MySQL
数据库介绍与MySQL详细介绍
数据库是信息科技领域中不可或缺的一部分,它们在我们日常生活中扮演着重要的角色,从手机应用到云计算,无处不在。在本篇博客中,我们将深入探讨数据库的基本概念以及MySQL这一流行的开源关系型数据库的详细信息。不需要数据库专业知识,我们将从头开始,向您解释这些复杂的概念。
649 0
InputStream,String,File相互转化
InputStream,String,File相互转化
188 3
|
12月前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
290 1
|
存储 SQL NoSQL
深入理解数据库技术:从基础到前沿应用
一、引言 在信息化和数字化的时代,数据已成为推动社会进步和企业发展的核心资源
|
SQL 存储 数据挖掘
探索数据库技术的奥秘:核心原理、应用场景与实践技巧
一、引言 数据库技术作为现代信息系统中不可或缺的一部分,扮演着存储、管理和检索数据的重要角色