[zeromq-dev] How to load-balance blindly ? option to retrieve the identity assigned by the ROUTER or STREAM peer ?

Laurent Alebarde l.alebarde at free.fr
Thu Feb 13 23:22:07 CET 2014

Hi all,

I am designing an architecture with tens of workers, each with hundreds 
of sockets. All the sockets connect to the same address. On the broker 
point of view, nothing differentiates the connections it receives except 
their unique identity it assigns to them. If it was one worker with 
1,000 sockets or 10 workers with 100 sockets or whatever, the broker has 
no way to see it. That makes load balancing uneasy since the broker is 
blind against the workers socket repartition.

I could use a different port for each worker, but it would be a huge 
overall redesign. So I have only one port. The idea would be that each 
worker could retrieve the identity of its sockets, as assigned by the 
broker. Then each worker would transmit to the brocker via a message the 
list of its identities, and the broker would be able to elaborate a load 
per worker.

The only solution I foresee is to make use of 5 bytes of the greeting's 
filler to transmit this identity. Of course, it would be activated only 
on the activation of a new option on the broker socket, and another one 
on the workers ones to retrieve it. This would be not compatible with 
the IDENTITY. I think something like this did exist in the past ?

Does someone has a better idea ?



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20140213/0c714cd0/attachment.htm>

More information about the zeromq-dev mailing list