You are right we do have any way of handling clients dynamically so that
every server has balanced load. This requires a careful design since we
would not want client connections to keep flipping around and also maintain
stability as much as we can. We have had some discussions about it but
nothing concrete has materialized yet.
We do have checks in place that prevent more than a certain number of
connections (default 10) from the same ip address. This is to keep too many
zookeeper client instances from the same client bogging down the zookeeper
service. Also, we have throttling for number of outstanding requests from
clients (currently set to 1000 by default). This allows zookeeper service to
throttle zookeeper clients. This throttling isnt done on per client basis
but is just a check to not bring down the zookeeper service because of some
Any other checks that you specifically were thinking of?
On 2/28/10 10:18 PM, "Qian Ye" <yeqian....@gmail.com> wrote:
> Hi guys:
> As I know, when a client connected to Zookeeper servers, it would choose a
> server randomly (without the zoo_deterministic_conn_odrder on), and then,
> the client would talk to the server until a failure happened. It seems that
> zookeeper server cannot handle the client connection dynamically according
> to the load of the server. If some flaw of a client made the client connect
> Zookeeper servers frequently, it may prevent other normal clients from
> getting services from Zookeeper, right? So, is there any method to resolve
> these two practical problems:
> 1. Handle and apportion clients dynamically, so every servers would have
> balanced load.
> 2. Some of frequency controller, which set a frequency threshold on the
> frequency of requests from a client, prevent server resource from being
> exhausted by a few clients.
> With Regards!
> Ye, Qian