Hi Jake
In fact, most ZMQ socket types do some sort of load balancing when
connected with multiple other sockets. See [1], especially the "Outgoing
routing strategy" and "Incoming routing strategy" in the table for each
socket type. TL;DR if the socket allows receiving messages and is
connected to multiple other sockets, it will try to read from all of
those sockets "fairly". If the socket allows sending messages and is
connected to multiple other sockets, it will usually round-robin when
sending.
Of course PUB (and RADIO) will not round-robin, but "fan out" instead,
meaning all connected sockets will receive every message.
And ROUTER is an exception too: When sending, it uses the first message
part (set by the application) to determine the correct receiver. This
allows you to send a message to one specific connected socket. When
receiving, it prepends a message part that identifies the socket which
sent the message. Your application will have to inspect that first part
to know who is its sender. These two things will have to happen in your
A node. The DEALER sockets in your B nodes will have to set an identity
to be distinguishable in A's ROUTER socket.
Regards,
Patrik
[1] http://api.zeromq.org/4-2:zmq-socket
On 14.02.2018 20:17, Jake wrote:
Isn't ROUTER-DEALER load balancing though? I've used it in a
REQ-ROUTER-DEALER-REP set up
but in that case the REQ -> ROUTER send does not target a particular
handler on the other side, it
just goes to an arbitrary one and the ROUTER makes sure the reply goes
back to the original sender.
How would my sender (an A node) target a particular B node to receive
a message?
-Jake
On Wed, Feb 14, 2018 at 12:34 PM, Justin Azoff <[email protected]
<mailto:[email protected]>> wrote:
On Wed, Feb 14, 2018 at 12:28 PM, Patrik VV. <[email protected]
<mailto:[email protected]>> wrote:
> Hi
>
> Not sure why Justin suggested using a ROUTER-Socket on each side.
Ah yes, I misread the original message. For "one-to-many" you would
use router-dealer. router+router would be more for many-to-many where
each node runs the same code and there is no obvious master node.
--
- Justin
_______________________________________________
zeromq-dev mailing list
[email protected] <mailto:[email protected]>
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
<https://lists.zeromq.org/mailman/listinfo/zeromq-dev>
_______________________________________________
zeromq-dev mailing list
[email protected]
https://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________
zeromq-dev mailing list
[email protected]
https://lists.zeromq.org/mailman/listinfo/zeromq-dev