当前位置: 首页 > news >正文

zookeeper 配置

globalOutstandingLimit

这个配置指定了等待处理的最大请求数量的限制(zookeeper.globalOutstandingLimit)。

client发送请求的速度可能会比server端处理的速度快,会导致请求在server端排队,最终(在若干秒内)会使server的内存耗尽。为了避免这一点,如果等待的请求数量达到了globalOutstandingLimit,server端会拒绝client的请求。但是这个限制不是hard限制。每一个client至少能有一个outstanding请求,否则连接会开始出现超时。所以,当达到globalOutstandingLimit之后,只有在没有任何的pending请求时,server才会从client连接读取数据。

 

为了决定某一台确定的server的限制,可以简单的用这个配置项的值除以server的数量。现在没有一种聪明的方式来决定这个值来进行限制,总的说来,这个配置项的值就是outstanding请求的上限。实际上,负载无法在server间进行均衡,总有一些server的负载会高一些,即使没有达到上限。

默认的限制为1000个请求。通常不需要改变这个配置,如果有很多client会发送非常大的请求,你需要调低这个值,但是在实践中通常不需要改变这个值。

 

maxClientCnxns

决定了每个IP地址可以发起的socket连接个最大个数。

ZooKeeper使用了flow control和limit来避免连接过载。建立连接消耗的资源远远超过普通的操作消耗的资源。一瞬间过多的请求会造成拒绝服务的问题,所以加上了这个限制,当某个IP的连接超过了这个限制,server会拒绝连接。默认值为60。

 

clientPortAddress

默认server会监听所有的网络接口提供client来连接。有一些服务器会有多个网络接口,通常一些为内网接口一些为外网接口。如果不想开放外网接口,可以将此配置项设为内网接口。

 

minSessionTimeout

这是session过期的最小超时时间,单位为毫秒。当client发起连接时,它会请求一个特定的超时时间,但是实际的超时时间并能小于这个配置项。

 

开发者喜欢立即并准确的检测到client端的失败。但不幸的是,系统不能实时的检测到,实际上是使用心跳和超时来做的。超时的使用依赖于client端和server端的网络延迟和可靠性。超时时间必须至少等于网络的round trip time,但是偶尔会有丢包的情况,在这种情况下接收响应的时间会增加,因为会发送发送丢失的包。

 

默认minSessionTimeout是tickTime的2倍。把这个值设置得过低的话会导致错误的检测client的失败。设置得太高的话会导致检测client的失败的延迟。

 

maxSessionTimeout

这是最大的session超时时间,单位为毫秒。当client发起连接时,它会请求一个特定的超时时间,但是实际的超时时间并能大于这个配置项。

 

尽管这个配置不会影响系统性能,但会限制client消耗系统资源的时间。默认是tickTime的20倍。

 
0

转载于:https://www.cnblogs.com/zenghui940/p/5367782.html

相关文章:

  • JAVA基础知识总结
  • 敌兵布阵_区间求和问题_线段树 or 树状数组
  • CI 笔记(1)
  • hdu 1874 畅通工程续
  • 补--第四周
  • UI-定时器与动画使用总结
  • J2EE 课件2
  • Oracle SQL monitor
  • HTML 利用MAP创建图片中的链接的映射
  • CSS选择器(二)
  • 2016.04.14,英语,《Vocabulary Builder》Unit 14
  • 实验三 白盒测试
  • php 实现简单的登录
  • 一百多套开发视频教程的下载地址
  • jquery中attr和prop的区别
  • bootstrap创建登录注册页面
  • Docker 笔记(2):Dockerfile
  • es6--symbol
  • HTTP 简介
  • IE报vuex requires a Promise polyfill in this browser问题解决
  • Linux快速复制或删除大量小文件
  • Linux链接文件
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • October CMS - 快速入门 9 Images And Galleries
  • ReactNativeweexDeviceOne对比
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • Terraform入门 - 3. 变更基础设施
  • 基于Android乐音识别(2)
  • 区块链分支循环
  • 思否第一天
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 异常机制详解
  • #{} 和 ${}区别
  • %@ page import=%的用法
  • (10)STL算法之搜索(二) 二分查找
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (二) Windows 下 Sublime Text 3 安装离线插件 Anaconda
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (顺序)容器的好伴侣 --- 容器适配器
  • (学习日记)2024.01.19
  • (转)ABI是什么
  • (转载)从 Java 代码到 Java 堆
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .Net中ListT 泛型转成DataTable、DataSet
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .NET中统一的存储过程调用方法(收藏)
  • .net专家(高海东的专栏)
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /etc/fstab和/etc/mtab的区别
  • @RequestBody与@ResponseBody的使用
  • @我的前任是个极品 微博分析
  • []串口通信 零星笔记
  • [2010-8-30]
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)