[zeromq-dev] Maybe a ZMQ_LOST socket
Min
miniway at gmail.com
Wed Jun 29 23:03:27 CEST 2011
Hello,
I'm enjoying with 0MQ at a job distribution pipeline. I've been using
ROUTER-REQ based LRU workers and ROUTER-DEALER based workers with heartbeat
which is used PPP for better reliability.
In my project, client doesn't get response from workers, so to speak, fire
and forget. So I can fully utilize PPP at client side.
Anyway heartbeat worker was only answer to me, because LRU could not detect
dead or disconnected REQ worker after it send "READY".
Even though heartbeat can detect the dead workers with higher probability,
works can gone between the heartbeat interval.
So a message can be lost, as I can utilize client side resend. Sure the
Majordomo or shared state DBMS/Legacy MQ might solve the issue.
For me it is a little painful and I know great reliability comes from more
lines.
I just expect the ROUTER socket has a way to keep history which there is an
error to send a message because of lost peer or invalid address.
As sending messages are asynchronous, returning FALSE at send doesn't make
sense.
Instead, what if another socket buffer, ZMQ_LOST, could gather the lost
messages only when programmer declare the ZMQ_LOST socket and attach to the
ROUTER.
By polling the ZMQ_LOST socket, broker can retry or log itself.
It might break design philosophy of 0MQ.But am I the only person who wants
more built-in(??) reliability? :)
Thanks
Min
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20110630/ad48d2fd/attachment.htm>
More information about the zeromq-dev
mailing list