短轮询是否比消息队列消耗更少的资源?

时间:2015-11-01 20:10:17

标签: node.js message-queue polling strongloop

我目前有一个API运行,它将一个摄取作业委托给一个简短的轮询bash脚本。我不知道使用像StrongMQ的原生适配器这样的东西会比短轮询实现消耗更少的资源。

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

如果消息队列的资源密集程度低于短轮询,那么考虑到消息队列的实现是一个单独运行的微服务(这是操作系统上运行的另一个节点进程或“集群”),这是多么可能。

1 个答案:

答案 0 :(得分:0)

归结为轮询频率和每次民意调查的开销。

如果您不经常轮询,那么它可能会消耗更少的资源来执行crontab中的bash脚本之类的操作,因为资源仅在轮询期间使用。

如果您经常轮询以至于您的轮询脚本花费的时间比休眠时间长,那么使用类似消息队列的东西并支付更小但更恒定的间接税可能更有意义。

"短轮询"使用shell脚本

每个循环都涉及启动bash进程,并且bash进程会分离少数子进程以执行诸如读取文件和通过grep运行结果等任务,然后您就会获得一些可衡量的开销。如果检查结果是肯定的,则分叉其他脚本或进程以执行排队操作。

消息队列轮询

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