[zeromq-dev] Start sequence problem for cycle pup-sub processes.

Jeff Vienneau jpvienneau at gmail.com
Mon Dec 6 14:13:11 CET 2010


I am building a pipeline style application in which the stages are processes
with ZMQ sub socket for input and ZMQ pub socket for output. However, I have
the requirement to throttle the generating side (SOURCE) of the pipeline to
meet a rate requirement at the end of the pipline (SINK). To achieve this, I
am publishing a flow-control message from the SINK, that the SOURCE
subscribes to. Here is the basic dataflow:

SOURCE ===> A ===> B ===> SINK
   ^                       |
   + -------flow-----------+

This works well enough when the pipeline is up and running however, at
startup is causing issues. If I simple start all of the processes (SINK, B,
A, SOURCE), the data does not start flowing, however, if I then kill the
SINK or the SOURCE and restart it, the data will then start flowing
properly. This is a connection sequence problem rather than a flow message
problem because the SOURCE is currently configured to generate messages by

By the way, this pipeline is on one or two windows XP machines currently,
each are multicore (8 and 2). Because of a hardware driver requirement we
are struck on the windows platform. We are using ZMQ version 2.0.6. There
are all C++ apps. The messages are ~2000 bytes at a rate of ~15,000 mps. The
flow currently is an "ON" or "OFF" message every 100ms.

I would like to keep to simple PUB-SUB as I am trying to make a pipeline
that is flexible and modular.

How can I get this configuration to startup without having to kill and
restart processes?

Great project, hope you can help. Thanks!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20101206/c834f667/attachment.htm>

More information about the zeromq-dev mailing list