下面这些配置对client与server之间的连接和超时时间进行了限制。
globalOutstandingLimit
这个配置指定了等待处理的最大请求数量的限制(zookeeper.globalOutstandingLimit)。
client发送请求的速度可能会比server端处理的速度快,会导致请求在server端排队,最终(在若干秒内)会使server的内存耗尽。为了避免这一点,如果等待的请求数量达到了globalOutstandingLimit,server端会拒绝client的请求。但是这个限制不是hard限制。每一个client至少能有一个outstanding请求,否则连接会开始出现超时。所以,当达到globalOutstandingLimit之后,只有在没有任何的pending请求时,server才会从client连接读取数据。
为了决定某一台确定的server的限制,可以简单的用这个配置项的值除以server的数量。现在没有一种聪明的方式来决定这个值来进行限制,总的说来,这个配置项的值就是outstanding请求的上限。实际上,负载无法在server间进行均衡,总有一些server的负载会高一些,即使没有达到上限。
默认的限制为1000个请求。通常不需要改变这个配置,如果有很多client会发送非常大的请求,你需要调低这个值,但是在实践中通常不需要改变这个值。