ZeroMQ PUB/SUB 的内部行为是什么?

What is the ZeroMQ PUB/SUB internal behaviour?

我正在努力了解 zmqPUB/SUB 的行为。

Q1: 我找不到使用 PUSH/PULL 套接字组合的真正原因创建一个队列,当 PUB/SUB not.

时,它实际上在内存中排队无法传递的消息(消费者不可用)

Q2: 是否有任何技术白皮书或文档详细描述套接字的内部结构?

编辑:PUSH/PULL streamer works as expected (the worker join late or restart and gets the queued messages in the feeder. PUB/SUB forwarder 示例的行为方式不同。

虽然 Q1 很难在没有 SLOC 的情况下得到回答/完全解决 ...

你的 code 仍有机会(虽然尚未发布,
which Whosebug 所以much 鼓励用户将表格包含在又名 MCVE
中,您可能已经或很快会因为不这样做而感到愤怒)

只是
忘记了
设置订阅topic-filter

aSubSOCKET.setsockopt( zmq.SUBSCRIBE = "" )          # ->recv "EVERYTHING" / NO-TOPIC-FILTER
aSubSOCKET.setsockopt( zmq.SUBSCRIBE = "GOOD-NEWS" ) # ->recv "GOOD-NEWS" MESSAGES to be received only

A2:是的,有所有 ZeroMQ API 调用的详尽描述 +

除了 API manpage collection for ØMQ/2.1.1 and other versions,
还有一本在线出版的很棒的 pdf"Code Connected, Vol.1" 来自 Pieter HINTJENS 本人。

值得一读。对通用分布式处理领域和 ZeroMQ 方式有很多见解。