c++ - 为什么 zmq 将多条消息打包到一个 TCP 帧中?
问题描述
我使用带有标志的ZMQ_PUSH
套接字发送消息。ZMQ_DONTWAIT
每条消息间隔 300 毫秒(所以我严重怀疑我的线程调度是否如此关闭)。但是,有时会有几条(到目前为止最多 7 条)消息被打包到同一个 TCP 帧中,但我在 tcpdump 中看不到任何重新传输或重新连接。
为什么会这样?我如何确定我的消息何时发送?
解决方案
问:“我如何确定我的消息何时发送?”
欢迎来到 Zen-of-Zero 的 ZeroMQ 艺术。
您有零机会知道被分派发送的消息何时最终会下降到线路级别。
这是概念的属性,而不是错误。它在文档中明确解释,因为 API v2.0+(并且很可能永远保持如此)。公平地补充一点,对 -instance 内部性的一些见解zmq_context
可能来自socket_monitor
更新的 API 版本中的可用内容。
如果您从未使用过ZeroMQ,
您可能会喜欢先看看“ ZeroMQ -不到五秒钟的原则”
,然后再深入了解更多细节
推荐阅读
- node.js - 无法从 S3 (Node.js) 中删除对象
- javascript - 从自定义 Shopify 应用将 JavaScript 添加到 Shopify 模板
- python - + 与 f 字符串的字符串连接
- orm - 如何检查 DRF 中的数据库中是否已经存在记录?
- html - 浏览器自动填充输入值时如何自动提交表单
- virtual-reality - 使用 PsExec 在远程计算机上运行 VR 应用程序
- mongodb - 如何运行 MongoDB?
- python - 如何更新传递给 InlineButton 的变量的值
- amazon-web-services - AWS AUTH0 DELEGATION ERROR 缺少委托人参数 (invalid_request)
- c++ - 关于 `statfs64` 的更多解释