短轮询比消息队列占用资源少吗?

Is short-polling less resource-intensive than message queues?

我目前有一个 API 运行 将摄取作业委托给短轮询 bash 脚本。我想知道使用 strongMQ 的原生适配器之类的东西是否会比短轮询实现消耗更少的资源。

https://github.com/strongloop/strong-mq

如果消息队列比短轮询占用资源更少,考虑到消息队列的实现是一个单独的 运行 微服务,它是另一个节点进程或 "cluster" 运行 在操作系统上。

归结为轮询频率和每次轮询的开销。

如果您的轮询不是很频繁,那么在 crontab 中执行 bash 脚本之类的操作可能会消耗较少的资源,因为资源仅在轮询期间消耗。

如果您的轮询如此频繁以至于您的轮询脚本花费的时间 运行 比休眠还多,那么使用消息队列之类的东西并支付更小但更稳定的间接费用可能更有意义。

"short polling" 使用 shell 脚本

每个周期都涉及启动一个 bash 进程,并且该 bash 进程派生出一些子进程来执行诸如读取文件和 运行 通过 grep 结果的任务,那么你就有了一些可衡量的开销。如果检查结果是肯定的,您将分叉一些其他脚本或进程来执行排队的操作。

消息队列轮询

每个循环都涉及根据某种条件检查内存中的值。如果满足条件,则向连接的客户端发送通知 message/packet。然后客户端执行排队的任何操作。