zookeeper学习、配置文件参数详解

zookeeper学习、配置文件参数详解

  • zookeeper 配置文件参数详解
  • tickTime 、session 的过期时间、maxSessionTimeout 三者之间的关系
  • initLimit,syncLimit什么区别
  • minSessionTimeout 默认值,**他的单位是ms**

在这里插入图片描述

zookeeper 配置文件参数详解


ZooKeeper 是一个分布式协调服务,它可以维护配置信息、命名空间、分布式同步等。ZooKeeper 的配置文件通常是 zoo.cfg,这个文件中包含了 ZooKeeper 运行所需要的配置信息。

以下是一些主要的 ZooKeeper 配置参数及其含义:

  1. tickTime:这是 ZooKeeper 中的基本时间单位,以毫秒为单位。这个值会影响到其他很多配置项,比如 session 的过期时间就是由这个值和 maxSessionTimeout 来共同决定的。

  2. dataDir:ZooKeeper 保存数据的目录。这个目录会包含一个名为 version-2 的文件夹,里面保存了所有的事务日志和快照文件。

  3. dataLogDir:这个是 ZooKeeper 保存事务日志的目录,如果配置了这个参数,事务日志就不会保存在 dataDir 中了。

  4. clientPort:客户端连接 ZooKeeper 服务的端口,默认是 2181。

  5. initLimit:这个参数配置了启动 ZooKeeper 服务器与连接到它的 followers 之间的心跳检测频率。这个值是以 tickTime 为单位的。

  6. syncLimit:这个参数配置了 ZooKeeper 服务器与连接到它的 followers 之间同步的频率。这个值也是以 tickTime 为单位的。

  7. maxClientCnxns:这个参数配置了 ZooKeeper 能接受的最大客户端连接数。

  8. minSessionTimeout:这个参数配置了 session 的最小超时时间,这个值是以 tickTime 为单位的。

  9. maxSessionTimeout:这个参数配置了 session 的最大超时时间,这个值也是以 tickTime 为单位的。

  10. server.x=A:B:C:这个是集群模式下配置的,x 是服务器的编号,A 是这个服务器的 IP 地址,B 是这个服务器与其他 ZooKeeper 服务器通信的端口,C 是这个服务器用来选举 leader 的端口。

以上是 ZooKeeper 配置文件中的一些主要参数,具体配置应根据实际的需要进行调整。具体的配置方式和详细的参数列表可以参考官方文档。


tickTime 、session 的过期时间、maxSessionTimeout 三者之间的关系


在ZooKeeper中,会话超时的设定是有范围限制的,这个范围是由 tickTimemaxSessionTimeout 两个配置参数决定的。

  1. tickTime:这是 ZooKeeper 中的基本时间单位,以毫秒为单位。

  2. maxSessionTimeout:这个参数配置了 session 的最大超时时间,这个值也是以 tickTime 为单位的。默认情况下,这个值是 tickTime 的 20 倍。,它的单位也是毫秒

会话超时的时间不能超过 maxSessionTimeout 的值,也不能低于 tickTime 的 2 倍。这个规则在客户端创建会话并设置超时时间时会被 ZooKeeper 服务器检查并执行。如果客户端请求的会话超时时间超出了这个范围,那么 ZooKeeper 服务器会将其调整到这个范围的边界上。

所以,tickTimesession 的过期时间以及 maxSessionTimeout 这三者之间的关系可以总结为:session 的过期时间是以 tickTime 为单位的,且其值在 2 * tickTimemaxSessionTimeout 这个范围内。


initLimit,syncLimit什么区别


initLimitsyncLimit 都是用于在 ZooKeeper 集群中管理服务器之间的交互的参数,但它们的应用场景和用途有所不同:

  1. initLimit:这个参数用于配置 ZooKeeper 服务器启动时,leader 和 follower 之间的初始化连接时间,单位为 tickTime。当 ZooKeeper 集群启动时,或者当 leader 服务器宕机后,follower 服务器会与新的 leader 服务器建立连接,这个参数就是用来配置这个连接过程的超时时间的。如果在这个超时时间内,follower 服务器不能与 leader 服务器完成连接,那么 follower 服务器会认为这个连接失败。

  2. syncLimit:这个参数用于配置 ZooKeeper 集群运行时,leader 和 follower 之间的正常交互时间,单位也是 tickTime。这个参数决定了 follower 服务器能容忍的最长的与 leader 服务器的请求响应时间。如果超过这个时间,follower 服务器会认为与 leader 服务器的连接已经断开,然后尝试重新连接或者启动新一轮的 leader 选举。

简单地说,initLimit 是用来配置 follower 服务器在启动或者重新选举 leader 时,与 leader 服务器连接的最长等待时间,而 syncLimit 是用来配置 follower 服务器在正常运行时,与 leader 服务器交互的最长等待时间。

最新解释:

ZooKeeper 在工作时通常有一个领导者(Leader)和多个追随者(Follower),他们需要进行通信以保持同步。initLimitsyncLimit 都是用于管理这些通信的参数。

  1. initLimit:这个参数主要用于 ZooKeeper 集群启动时或者领导者(Leader)崩溃后重新选举时,Follower 服务器与新的 Leader 服务器之间的初始化和同步连接的时间。可以理解为它定义了集群成员连接到新的领导者并同步所有最新数据的最长时间。如果在 initLimit * tickTime 这么长的时间内 Follower 没有完成同步,那么它会被丢弃。
  2. syncLimit:这个参数主要用于运行中的 ZooKeeper 集群,定义了 Leader 和 Follower 之间发送消息、请求和应答的最长时间。如果 Follower 在 syncLimit * tickTime 这么长的时间内没有和 Leader 进行有效交互(例如,接收到 Leader 的心跳消息),那么 Follower 会认为连接已经断开。

所以简单来说,initLimit 是在集群初始化或领导者更换时,Follower 连接并同步 Leader 的最长等待时间。而 syncLimit 是在集群正常运行期间,Follower 与 Leader 之间保持联系的最长时间。两者都是以 tickTime(ZooKeeper 的基本时间单位)为单位计算的。


minSessionTimeout 默认值,他的单位是ms


在 Apache ZooKeeper 的默认配置中,minSessionTimeout 这个参数的默认值并未明确设定。

如果没有显式地设置 minSessionTimeout,ZooKeeper 将使用 tickTime 的两倍作为会话的最小超时时间。这意味着,如果你没有单独设置 minSessionTimeout,并且你的 tickTime 是默认的 2000 毫秒,那么 minSessionTimeout 将会是 4000 毫秒。

因此,在设置会话超时时,需要确保它在 minSessionTimeout(默认为 tickTime 的两倍)和 maxSessionTimeout 之间。如果提供的值超出这个范围,ZooKeeper 服务器将会调整会话超时时间到这个范围的边界值。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自动驾驶#芯片-1

概述 汽车是芯片应用场景之一,汽车芯片需要具备车规级。  车规级芯片对加工工艺要求不高,但对质量要求高。需要经过的认证过程,包括质量管理标准ISO/TS 16949、可靠性标准 AEC-Q100、功能安全标准ISO26262等。  汽车内不同用途的芯片要求…

Python中的深拷贝和浅拷贝

一、概述: Python中拷贝的方法有两种: 浅拷贝:copy()深拷贝:copy.deepcopy() 二、理解深拷贝和浅拷贝 2.1 拷贝的应用 浅拷贝 # 原始数据 list1 ["php", "java", "python"] # 对list进行复制…

如何卸载windows系统自带游戏

为了清晰地指导如何卸载Windows系统自带游戏,我们可以参考以下步骤进行: 方法一:通过控制面板卸载 打开控制面板进入程序和功能在控制面板中,找到并点击“程序和功能”。在程序列表中,找到你想要卸载的自带游戏。 方…

AI一键生成PPT工具:AIPPT网站分享

PowerPoint演示文稿作为商业沟通、教育培训以及日常汇报的重要工具,一份精美的ppt可以帮助我们提升演示效果以及显示我们的专业性。为了提升ppt的制作效率,我们可以使用AI一键智能生成ppt工具,这样我们就可以快速制作出高大上的PPT了。下面小…

Web攻防:SQL注入 - MySQL 盲注

SQL注入 - MySQL 盲注 1. 基于布尔 SQL 盲注1.1 LEFT() 函数1.1.1 介绍:1.1.2 注入语法:1.1.3 案例 (SQLi-Labs:Less-8) 1.2 ASCII() 函数 SUBSTR() 函数1.2.1 介绍:1.2.2 注入语法:1.2.3 案例 (SQLi-Labs&#xff1a…

Java——可变参数

一、可变参数 1、介绍 Java的可变参数(Varargs)是一种语法特性,允许一个方法接受不定数量的参数。可变参数的使用通过在参数类型后面添加省略号(...)实现。这使得方法在调用时可以传入不同数量的参数,而不…

Ubuntu20.04用NetworkManager的 nmcli connection modify 连接的名称或UUID 来设置IPV4 笔记240619

用NetworkManager的 nmcli connection modify 连接的名称或UUID ipv4.address 来设置IPV4 用NetworkManager的 nmcli connection modify 连接的名称或UUID ipv4.address 来设置IP 的模板 只设置修改IP 覆盖原有设置: ipv4.addresses或ipv4.addr或ipv4.a NameOrUuidOfConnec…

leetcode 二分查找·系统掌握 统计有序矩阵中的负数

题目: 给你一个 m * n 的矩阵 grid,矩阵中的元素无论是按行还是按列,都以非严格递减顺序排列。 请你统计并返回 grid 中 负数 的数目。 题解: 一种可行的解题思路是找出每一行中负数的个数再相加,又因为每一行单调递…

虚拟存储(Linux挂载点合并)

简介 在 Linux 中你有 3 块硬盘(或分区)分别为 100G、200G 和 300 G,如何在一个统一的路径下访问 600G 的视频文件夹呢?并且任何一个磁盘数据的损坏是不能影响其他两个磁盘中的数据,也不影响其他磁盘的正常访问。 相信大多数用户会想到几种解决办法: 买个更大的硬盘 ̄□ ̄…

Git 克隆 GitHub 仓库时遇到了 SSL 证书问题

fatal: unable to access GitHub - xxxxxxxxxxx: SSL certificate problem: unable to get local issuer certificate 使用 HTTP 代替 HTTPS: 如果 SSL 证书问题无法解决,您可以尝试使用 HTTP 克隆仓库(不推荐,因为不安全)。但请注…

Android device/xxx/system/common/overlay编译产物

MTK 如下代码编译的产物在 framework-res.apk 编译配置文件在device/mediatek/system/common/目录下的Android.bp device/mediatek/system/common/overlay/telephony/frameworks/base/core/res/res/values-mcc655-mnc01/config.xml 在Android U上面还在overlay目录中进行了产…

图像的高频和低频细节

在图像处理和计算机视觉中,"高频"和"低频"是用来描述图像中不同类型细节的术语。这些术语源自信号处理领域,其中频率的概念用于描述信号随时间变化的,但在图像处理中,它们被用来描述图像随空间变化的&#xf…

python是TIOBE编程语言排名第一的编程语言,它有什么优点?它的使用场景有哪些?用python打印数字1--100,用python打印九九乘法表怎么写?

Python是TIOBE编程语言排行榜排名第一的编程语言 。 python是一种解释性、交互式、面向对象的跨平台的语言。 python设计者及名称由来 Guido van Rossum 荷兰人---吉多范罗苏姆,是 Python 编程语言的最初设计者,在 Python 社区一直担当终身仁慈独裁者&…

教你如何安装 IntelliJ IDEA

安装 IntelliJ IDEA 的步骤通常如下,这里提供的是基于 Windows 系统的安装指南。 下载 IntelliJ IDEA 1. 访问 JetBrains 官方网站:[https://www.jetbrains.com/idea/download/](Download IntelliJ IDEA – The Leading Java and Kotlin IDE) 2. 选择适…

vue+echarts实现tooltip轮播

效果图如下: 实现步骤如下: 定义一个定时器 timer:null, len: 0,页面一加载就清空定时器,此操作是为了防止重复加载时会设置多个定时器在setOption后设置定时器 this.myChart.clear() this.myChart.setOption(option); this.autoShowTool…

java 面试题--基础

文章目录 基础java SE 、 EE 、 ME 的区别jdk 和 jre 区别?java 的日志级别基本数据类型 特性关键字finalabstractsuperswitchfortry catch 接口和抽象类的区别接口抽象类适用场景 类的加载循序静态代码块 传参问题访问修饰符运算符 反射java 里的应用为什么反射的性…

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》Chapter 10插图

禹晶、肖创柏、廖庆敏《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》 Chapter 10插图

YOLOv8旋转目标检测Yolov8n-obb详细实例+rolabelimg

一、Yolov8环境搭建 首先创建虚拟环境下载安装(其实就是yolov8的环境)再大概写一下步骤,没有想详细的看本人另外一篇:YOLOv8环境搭建_yolov8环境配置-CSDN博客 1、下载安装anaconda 2、创建虚拟环境 conda create -n my_yolov8…

二分查找算法模板

在算法题中&#xff0c;二分查找是一个很基础的能力&#xff0c;但是很多情况下都有可能因为一些小条件导致整题的错误&#xff0c;所以我们需要学习并记忆正确的写法&#xff0c;本篇列出了三种情况下的写法 闭区间写法 int lower_bound(vector<int> &nums, int ta…

【Gradio】Chatbot | 如何使用 Gradio Blocks 创建自定义聊天机器人

简介 重要提示&#xff1a;如果您刚开始接触&#xff0c;我们建议使用 gr.ChatInterface 来创建聊天机器人——它是一个高级抽象&#xff0c;使得可以快速创建漂亮的聊天机器人应用程序&#xff0c;往往只需一行代码。在这里了解更多信息。 本教程将展示如何使用 Gradio 的低级…