[zeromq-dev] Fine control in the ROUTER socket

Andrey Ushenin andrey_ushenin at yahoo.co.uk
Tue Apr 23 10:57:01 CEST 2013


Hello,
Setup: 
We have a client-server application where client side using the DEALER socket to sends the requests to the server. The server can work with multiple clients and sends individual responses/updates to each of the client through the ROUTER socket.  There may be multiple responses/updates sent to a client per each request, the updates are not regular in time.  Both request and response pipes are on time/latency critical path. ZMQ 3.2.2
Questions: 
1. As DEALER queue is shared to sends the messages to all connected clients we want to protect the server from a slow client that fails to keep up with a certain rate of updates and causes the server to hit HWM. Ideally we would like handle this case by dropping the connection of the slow client from the SERVER side. 
I'm aware about suicidal snail pattern where we can detect such scenario and drop the connection on the client/reciever side. But what I'm trying to find is the way of achieving the same on the server/sender side. 
2. related to #1: is it possible to have a watermark individually counted in the ROUTER socket for each attached client?
3. More general question - is DEALER-ROUTER setup as we use them the best way to implement our requirements? I'm wonderting if there are any alternatives where we could still use the routing functionality like the one provided by the ROUTER but have a more control over individual client pipes. 
Thank you
Andrey
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130423/de5c0e5e/attachment.htm>


More information about the zeromq-dev mailing list