【问题标题】:How to get the Message/Events count in ZMQ Publisher/Subscriber QUEUE如何在 ZMQ Publisher/Subscriber QUEUE 中获取消息/事件计数
【发布时间】:2020-02-06 05:34:47
【问题描述】:
我们实现了ZMQ PUB/SUB机制,用于分布式进程之间的消息传输。但是由于订阅者的处理时间,消息的处理有一些延迟(有时延迟以小时为单位,因为排队消息的数量)。为了克服这种延迟,我计划根据进入发布者队列的待处理消息的数量来扩大/缩小订阅者进程。
有没有什么机制可以获取 ZMQ Publisher Queue 的计数/长度?
目前,我正在考虑使用 发布服务器 RAM 利用率阈值来扩大/缩小订阅者进程。
【问题讨论】:
标签:
zeromq
publish-subscribe
pyzmq
【解决方案1】:
Q:如何获取 ZMQ Publisher/Subscriber Queue 中的 Message/Events 计数?
PUB-side 有两个选项:
1) 简单计数所有 .send()-调用避免了“程序设计中的“垃圾错误”
2)如果不使用显式计数,可以使用socket_monitor 工具解决“垃圾”分类问题(这样做需要额外费用)
SUB-side 是消息的被动接收者,因此它只有一个选择:
- 使用socket_monitor 工具创建您自己的特定于应用程序的检测器(分析所有 API 背后的事件,没有其他方法可以在已发布的 API 抽象的幕后作弊)
Q:有没有什么机制可以获取 ZMQ Publisher Queue 的计数/长度?
(ref.above) + 取决于观察者“机制”的位置:
添加另一个独立工作的信令控制平面将有助于交叉融合这些原则,从而增强来自双方的所有相关控制数据,从而全面了解排队的流量。