message-queue - ZeroMQ 消息队列

标签 message-queue zeromq messaging

我使用 ZeroMQ 工作了一段时间。我已经阅读了一些白皮书和指南中的很多内容,但我仍然有一个问题悬而未决:

假设我们使用 PUB-SUB。 消息队列在哪里或在哪个系统上?在发布者系统端、订阅者系统端还是介于两者之间?

抱歉这个可能很愚蠢的问题。 此图片来自 Broker vs. Brokerless 白皮书。

enter image description here

最佳答案

每个 zeromq 套接字都有发送和接收队列(限制是通过高水位线设置的)。

在无代理 PUB/SUB 的情况下,消息可以在发送方或接收方排队。

例子:

  • 如果网络拥塞,发送方可能会在其发送队列中排队
  • 如果接收者消费消息的速度比消息到达的速度慢,它们将在接收者 recv 队列中排队

如果队列达到高水位线,消息将丢失。

关于message-queue - ZeroMQ 消息队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58091803/

相关文章:

node.js - 我什么时候需要在 Heroku 中使用工作进程

azure - 使用 Windows Azure 队列锁定队列中的消息

python - ZeroRPC 自动分配空闲端口号

python - 为什么 ZeroMQ req-rep 在 C++ 和 Python 之间给我一个空响应?

c++ - 无法在 C++ 中使用 LVM_GETITEMTEXT 而不导致目标应用程序崩溃

java - 通过 TCP 套接字发送数据包

python - 在 Python 中实现类似缓冲区的结构

java - 是否有一个 Java 本地队列库可以通过转储到硬盘来保持较低的内存使用率?

performance - 哪个 pyzmq 实现在 @gen.coroutine、@asyncio.coroutine 和 async 之间具有最快的吞吐量?

.net - 在集成测试中消息未发送到 Azure 服务总线