[zeromq-dev] Publish / Subscribe vs Multicast

gonzalo diethelm gdiethelm at dcv.cl
Mon Feb 15 22:03:49 CET 2010


I am answering some of my own questions here...

I have implemented a first version of the butterfly tutorial in ZMQ 2.0.
I am using ZMQ_UPSTREAM and ZMQ_DOWNSTREAM to connect all processes, and
it works fine, save for one thing: the load balancing. I am launching
two instances of component1 and two instances of component2 (in fact,
component1 and component2 now are identical, and only differ in their
command line parameters, but I digress).

I added as a command line parameter the name of the instance for each
component, and what I am seeing is that only the first instance launched
is receiving messages; the second instance never does anything.
Therefore, the overall throughput never changes.

More details:

1. send_requests does a bind to tcp://127.0.0.1:5009 (see step 5) and a
connect to tcp://127.0.0.1:5001.
2. component1 does a bind to tcp://127.0.0.1:5001 and a connect to
tcp://127.0.0.1:5002.
3. zmq_streamer is configured thusly:
   <streamer>
       <in>
           <bind addr = "tcp://127.0.0.1:5002"/>
       </in>
       <out>
           <connect addr = "tcp://127.0.0.1:5003"/>
       </out>
   </streamer>
4. component2 does a bind to tcp://127.0.0.1:5003 and a connect to
tcp://127.0.0.1:5004.
5. receive_replies does a bind to tcp://127.0.0.1:5004 and a connect to
tcp://127.0.0.1:5009 (this last one is to send the final sync message).

Again, messages do flow but only through the first instances of
component1 and component2.

Do I have to do anything special in order to ensure that every process
that does a send to an endpoint, does it in a manner that it will be
load-balanced across all processes that are bound to that endpoint?

-- 
Gonzalo Diethelm



----------------------------------------- 
Declaración de confidencialidad: Este Mensaje esta destinado para
el uso de la o las personas o entidades a quien ha sido dirigido y
puede contener información reservada y confidencial que no puede
ser divulgada, difundida, ni aprovechada en forma alguna. El uso no
autorizado de la información contenida en este correo podrá ser
sancionado de conformidad con la ley chilena. 
Si usted ha recibido este correo electrónico por error, le pedimos
eliminarlo junto con los archivos adjuntos y avisar inmediatamente
al remitente, respondiendo este mensaje. 

"Before printing this e-mail think if is really necesary".
Disclosure: This Message is to be used by the individual,
individuals or entities that it is addressed to and may include
private and confidential information that may not be disclosed,
made public nor used in any way at all. Unauthorized use of the
information in this electronic mail message may be subject to the
penalties set forth by Chilean law. 
If you have received this electronic mail message in error, we ask
you to destroy the message and its attached file(s) and to
immediately notify the sender by answering this message. 




More information about the zeromq-dev mailing list