[zeromq-dev] Basic questions on ZeroMQ functionality

Charles Remes lists at chuckremes.com
Thu Jan 10 14:42:53 CET 2013


Answers inline.


On Jan 10, 2013, at 7:03 AM, shyam valsan <egorulz at gmail.com> wrote:

> I have few basic questions on ZeroMQ functionality
> 
>  
> -          What is the maximum buffer size for zeroMQ receive socket (ZMQ_SUB). Wanted to know how many messages can be queued up on the receive socket.
> 

You can set your SNDHWM and RCVHWM (high water marks) to be effectively infinite, so then you are only limited by system memory.


> -          What is the max length of messages that can be send on the socket using zmq_send(). If the length exceeds the limit, will it be handled internally by zeroMQ as two different message or will the message get truncated?
> 

You can send a message of length 2^64. Zeromq does not do any internal splitting of messages; this is your responsibility.


>                 After I have opened a socket for listening [ i.e after successful calls to zmq_connect and zmq_setsockopt() with ZMQ_SUBSCRIBE option],all messages  being send on that port (where subscribe socket is listening) will be received by the subscribe socket and queued up in its receive queue. Once zmq_receive() call is made all these messages will be received by application. Is understanding correct.
> 

No, this isn't necessarily correct. Think of a PUB socket as a "radio broadcast" that is sending packets as fast as it can. If there are no listeners (subscribers) then all packets are dropped. If there is a subscriber and it is slow enough that its buffers overflow (high water mark again) then packets will also drop.

I highly recommend reading the guide (zguide.zeromq.org). It explains all of this in detail. Also, look at the man pages and the FAQ.

cr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130110/1da84ebb/attachment.htm>


More information about the zeromq-dev mailing list