Mohu se zeptat, jak přesně se konfiguruje počet zpráv ve frontě? Zkoušel jsem si s tím hrát, existuje volba "High Water Mark", ale zdá se, že fronty pořád akceptují všechny zprávy. Jde mi o to mít omezení na straně odesilatele (blokování, ne zahazování), ale kdyby se to muselo udělat jen u serveru, asi by to taky šlo. Zkoušel někdo http://api.zeromq.org/2-1:zmq-setsockopt a fungovalo to?
Konfigurace:
Fedora 27, Linux Mint, obě fungují stejně (špatně?)
ZMQ 4.2.5
Krátce - ono to přesně takto nefunguje, protože do toho ještě vstupují buffery síťových socketů operačního systému (to jsou jiné sockety :-). Na úrovni 0MQ se totiž může zdát, že je komunikační kanál volný, ale jen díky bufferu. Takže pokud například řešíte load balancing, tak je možné si pohrát s velikostí bufferů, jsou na to metody
Viz http://zeromq.org/area:faq sekce Monitoring:
How do I determine how many messages are in queue?
This isn't possible. At any given time a message may be in the ZeroMQ sender queue, the sender's kernel buffer, on the wire, in the receiver's kernel buffer or in the receiver's ZeroMQ receiver queue