[zeromq-dev] Durable socket question
Pieter Hintjens
ph at imatix.com
Wed Nov 3 10:30:27 CET 2010
On Mon, Nov 1, 2010 at 9:12 PM, Neale Ferguson <neale at sinenomine.net> wrote:
> I am planning an application that uses a PUSH/PULL pair to pass messages. I
> would like to exploit the durable socket feature of 0MQ such that if the
> PULL side was to fall-over it would be able to restart and pick up from
> where it had left off and not lose messages. A simple test program shows
> that using ZMQ_IDENTITY on the zmq_setsockopt call doesn't have any effect.
> Is this facility only valid for other types of sockets?
The durable subscriber feature only works for pubsub sockets. If you
are doing push/pull and want to assure against message loss due to
crashing nodes, you need to add your own error detection and recovery.
It can be quite brutal. Assume that a crash is a rare occurrence,
and then treat your entire pipeline as a single unit of work. If it
doesn't complete fully, i.e. if a single task got lost anywhere, throw
away the whole thing and restart it.
-Pieter
More information about the zeromq-dev
mailing list