The ZeroMQ Guide has a chapter dedicated to reliability stuff: https://zguide.zeromq.org/docs/chapter4/
Maybe there is no guarantee, but it can handle unreliable connection just fine, at least when I used it a few years ago.
Maybe there is no guarantee, but it can handle unreliable connection just fine, at least when I used it a few years ago.
Pseudocode:
Send msg to server
if socket timeout:
reinit socket and send again
Recv from server
if recv.msg != 'ok':
send again
else
remove msg from storage
One message has from few to few hundreds Kilobytes. Messages are stored and sent as custom binary data for better compression (better that protobuffs).
ZMQ takes complexity of raw tcp sockets away and this is what we needed it for. As much and as little.These may all be fine for your application, and then 0mq is an excellent fit. But I think that for most applications, having some kind of pre-implemebted solution to all of these problems, even with slightly more overhead, is extremely valuable.
True, better send twice than never.
> the client connects later than the server send
Server only responds, never sends anything.
> overwhelming the network
"broker" is handling it nicely
I strongly agree that zmq will not fit in every use case. Always search for best option.