Zookeeper工作机制、特点、数据结构、应用场景、配置参数解读

ZK工作机制

从涉及模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,zk就负责通知已在zk上注册的那些观察者做出相应的反应。
Zk = 文件系统+通知机制

特点

在这里插入图片描述

  1. 一个领导者(Leader),多个跟随者(Follwer)组成的集群
  2. 集群中只要有半数以上节点存活,ZK集群就能正常服务。所以ZK适合安装奇数台服务器。
  3. 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
  4. 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
  5. 数据更新原子性,一次数据更新要么成功,要么失败。
  6. 实时性,在一定时间范围内,Client能读到最新数据。

数据结构

Zk数据模型的结构与Unix文件系统很类似,整体可以看作是一棵树,每个节点称做一个ZNode。每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。
在这里插入图片描述

应用场景

统一命名服务

在分布式环境下,经常需要对应用/服务进行统一命名,便于识别
例如:IP不容易记住,而域名容易记住
在这里插入图片描述

统一配置管理

1、分布式环境下,配置文件同步非常常见:
一个要求一个集群中,所有节点的配置信息是一致的,比如Kafaka集群
对配置文件修改后,希望能够快速同步到各个节点上

2、配置管理可交由Zk实现:
可将配置信息写入zk上的一个Znode
各个客户端服务器监听这个Znode

统一集群管理

1、分布式环境中,实时掌握每个节点的状态是必要的。
可根据节点实时状态做出一些调整
2、zk可以实现实时监控节点状态变化
可将节点信息写入zk上的一个ZNode
监听这个ZNode可获取他的实时状态变化
在这里插入图片描述

服务器动态上下线

客户端能实时洞察到服务器上下线的变化
在这里插入图片描述

软负载均衡

在ZK记录每台服务器的访问数,让访问数量少的服务器去处理最新的客户端请求
在这里插入图片描述

ZK配置参数解读

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
dataDir=D://soft//apache-zookeeper-3.5.7-bin//data
dataLogDir=D://soft//apache-zookeeper-3.5.7-bin//log

tickTime

通信心跳时间,zk服务器与客户端,客户端与客户端,每隔两秒发送一次心跳,单位毫秒
在这里插入图片描述

initLimit

Leader与Follower初始通信时限
Leader与Follower初始连接时能容忍的最多心跳数,10次*2秒,也就是要在20秒内建立连接

syncLimit

Leader与Follower同步通信时限
Leader和Follower直接通信时间如果超过syncLimit*tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。

dataDir

保存ZK中的数据。
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。

clientPort

客户端连接端口,通常不做修改

下一篇:Zookeeper在Windows环境的安装
https://blog.csdn.net/qq_40525480/article/details/135088151

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/875308.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是CPU、GPU、NPU?(包懂+会)

目录 举例子 CPU:主厨 GPU:大量的厨房助理 NPU:面包机 总结 讲理论 CPU(中央处理器) GPU(图形处理单元) NPU(神经网络处理单元) 对比分析 举例子 CPU&#xff…

基于SpringBoot+Vue的个性化旅游推荐系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于JavaSpringBootVueMySQL的…

监控系统添加vcenter上的esxi主机

监控系统的软件选择: 监控系统要求 快速搭建 能快捷地添加vcenter上的主机(esxi) 能实现动态添加主机监控 可供选择的监控软件 Prometheus vmware_exporter添加 vcenter及esxi监控,报奇怪的错误,解决时间比较长&a…

端口安全老化细节

我们都知道port-security aging-time命令用来配置端口安全动态MAC地址的老化时间,但是后面还可以加上类型: [SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute Absolute time 绝对老化 inactivity Inactivity time相对老化 …

Qt 中openMp 配置

Qt 中openMp 配置 前言 openMP是使用CPU进行并行计算,在实际项目中处理耗时的for循环等,简单有效,本文记录下使用Qt \C项目开发时如何配置openMP 二、工程配置 1.Qt Creator pro工程 区分编译器,配置pro文件 MSVXXX编译器&am…

曝光破21亿,新茶饮行业如何掘金抖音?

沪上阿姨CEO单卫钧曾说:“新茶饮有几个特点,第一个是资本化,第二个是连锁化,第三个就是线上化。” 具体到线上化,除了美团、饿了么这些传统渠道之外,越来越多茶饮咖啡品牌开始布局抖音、快手等内容平台。在…

【kubernetes】配置管理中心Configmap运用

一,介绍 Configmap(简写 cm)是k8s中的资源对象,用于保存非机密性的配置的,数据可以用key/value键值对的形式保存,也可通过文件的形式保存。 【局限性】:在ConfigMap不是用来保存大量数据的&am…

腾讯云使用

注:本文的所有演示的代码都基于尚硅谷的尚乐代驾项目 对象存储COS 一种云存储器 官方文档: 对象存储 快速入门-SDK 文档-文档中心-腾讯云 (tencent.com) 一 上传文件 1 初始化客户端 官方示例: // 1 传入获取到的临时密钥 (tmpSecret…

Qt | ubuntu20.04安装Qt6.5.3并创建一个example完整教程(涉及诸多开发细节,商用慎重)

点击上方"蓝字"关注我们 01、下载 >>> 下载Qt在线安装包 这里采用镜像地址进行下载,避免网络过慢。 镜像地址:http://mirrors.ustc.edu.cn/qtproject/archive/online_installers/4.5/ 选择最新版本下载,如截至目前最新版本为qt-unified-linux-x64-4.5.2…

Python数据分析于可视化

Python数据分析于可视化 一、前言二、引言三、需求分析四、系统设计1.系统功能结构2.系统业务流程图 五、系统开发必备 一、前言 个人主页: ζ小菜鸡大家好我是ζ小菜鸡,让我们一起来学习Python数据分析于可视化。如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连…

计算机网络 --- 计算机网络的分类

一、计算机网络分类 1.1 按分布范围分类 举例:广域网(WAN)、局域网(LAN) 举例:个域网(PAN) 1.2 按传输技术分类 广播式网络――当一台计算机发送数据分组时,广播范围…

国外创意二维码应用案例:迪卡侬太会搞事情了!

想必大家还记得前不久轰动全球的蓝屏事件。多个国家多个行业的大量用户都受到了影响,就在航空公司、银行、超市、酒店、电信、媒体……因为突发的电脑蓝屏故障而手忙脚乱的时候,迪卡侬(Decathlon)却在这场“危机”中看到了机会。 …

VScode安装和使用教程,2024最新最全,零基础入门到精通,看完这一篇就够了!

# VSCode 安装使用教程(图文版) 工欲善其事,必先利其器 对于我们每一位软件工程师来说,都要有自己顺手的 IDE 开发工具,它就是我们的武器。 一个好用的 IDE 不仅能提升我们的开发效率,还能让我们保持愉悦…

51单片机+proteus仿真+基本实验学习1(跑马灯、独立按键和数码管)

目录 1.实验一跑马灯 1.1代码的生成 1.1.151单片机的延时函数的生成 1.1.251单片机的流水灯代码编写 1.2仿真框图 2.实验二I/O独立按键 2.1基本概念 2.1.1按键所需的基本知识 2.2代码的生成 2.2.1头文件定义的代码 2.2.2 执行代码 2.3仿真图 ​3实验三数码管 3.1基…

CentOS镜像源更新

如果 CentOS 7.9 的官方镜像源已不维护,你可以使用以下方法更新: 切换到其他镜像源:使用 CentOS 镜像站点或第三方镜像源,如 EPEL(Extra Packages for Enterprise Linux)。修改 /etc/yum.repos.d/CentOS-Ba…

电商API接口安全:构建稳固的数字防线

电子商务的蓬勃发展带来了前所未有的便利,同时也带来了新的安全挑战。API接口作为电商系统的核心组件,其安全性直接关系到企业的数据安全和业务连续性。因此,评估和加固电商API接口的安全性变得尤为重要。 电商API接口安全的重要性 电商API接…

Android生成Java AIDL

AIDL:Android Interface Definition Language AIDL是为了实现进程间通信而设计的Android接口语言 Android进程间通信有多种方式,Binder机制是其中最常见的一种 AIDL的本质就是基于对Binder的运用从而实现进程间通信 这篇博文从实战出发,用一个尽可能…

《深入浅出AI》前言知识:机器学习知识总结

👨‍💻面向对象: 本篇前言知识主要介绍机器学习,方便小白或AI爱好者学习基础知识。 💚友情提醒: 本文内容可能未能含概机器学习所有知识点,其他内容可以访问本人主页其他文章或个人博客&#xf…

【devops】devops-git之介绍以及日常使用

本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…

SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座

数字化办公时代,企业升级 IT 基础设施,已不再是选择题,而是必答题。 数字化办公时代,企业为何要升级 IT 基础设施? 随着时代变化与科技进步,人们的工作方式也发生了巨大变化。如今,远程办公、全…