[zeromq-dev] ZMQ3.0 Router Proposal/Idea

Ian Barber ian.barber at gmail.com
Fri Apr 1 11:08:26 CEST 2011


Hi all,

I've been away from the list for a few days, so apologies if this has been
suggested. I was thinking about the router/xrep issue, and the fact that we
know people want and have valid use cases for service routing. However, XREP
is not ideal for that at the moment as it effectively promotes routing to
nodes rather than services. It also occurred that we have half the problem
solved in the XPUB/XSUB branch.

What I considered was something similar to the subscription matching and
forwarding. For example, a worker creates a socket and sets a new sockopt:

socket->setSockOpt(ZMQ_PROVIDE, "createOrder");
socket->setSockOpt(ZMQ_PROVIDE, "deleteOrder");

When connected to a ROUTER type socket, these PROVIDEs are sent across. When
a message is received by the ROUTER, it sends it to any connected socket
which PROVIDEs the service, using the same prefix matching as subscriptions,
but it only sends to a single connection at a time (round robin between them
as normal). If the ROUTER is connected to another ROUTER, it sends upstream
all the PROVIDEs it is aware of, and hence propagates the availability in
the same way as the subscription upstreaming on XSUB.

This seems to give us the routing flexibility, but still saying scalable and
0MQ-y.

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


More information about the zeromq-dev mailing list