2013-07-23 76 views

回答

56

不同的是,一个PUB插座发送相同的消息给所有订户,而PUSH做了循环在所有其连接PULL套接字。

在你的例子中,如果你只从根发送一条消息,那么所有订阅者都会收到它(禁止慢速订阅者等),但只有一个工作者。

根据主题,发布/子模式用于广泛的消息分发。推/拉模式实际上是一种流水线机制。您的推/拉示例似乎试图进行负载平衡,这很好,但req/rep可能更适合由于其他问题。

它看起来像“问题”在这里0MQ的相同部分进行说明引导您从得到的图像:push/pull ventilator example

+4

我也想知道丢失的消息...即来讲有什么区别会发生如果服务器PUB或PUSH消息和客户端[1]丢失连接并重新连接[2]客户端始终连接,但客户端忙于工作,并没有在.recv() – Bhuvan

+1

'SUB'和'PULL'插座具有共同的特性,即使当客户端代码没有执行“recv”时,它们也会从可用消息中进行消费,因此在您的示例中,无论是哪种情况,client [2]都会获得消息,并且client [1]新消息重新连接时。重要的是,两种套接字类型都不能被“寻址”到特定的客户端。 – SteveLove

+1

你在哪里得到这个信息....点击并试用zeroMQ或者你找到了一些很酷的资源? – Bhuvan