在对可用的队列库做了大量的研究,但没有找到任何合适的解决方案之后,我写这篇文章是为了得到一些建议。
我有多个小型物联网设备每隔几秒钟向服务器发送数据,每个设备的数据处理应该按顺序进行。一个设备的数据不能优先于其他设备执行。
为了使用当前的解决方案实现顺序执行,我必须为每个设备创建一个队列,并将使用者连接到每个队列。设备的数量将会增加,因此创建多个队列和使用者并不是一个可扩展的解决方案。
我试图找到任何一种解决方案,其中一个队列将具有可以为每个设备分配的消息分组/主题,并且很少有使用者连接到具有一定执行能力的队列 X jobs/second
. 队列应该管理每个设备的顺序执行,但也可以通过为用户提供不同设备的并行作业来利用其最大容量。在失败的情况下,数据应该在设备的数据队列前面重新排队,并在一段延迟后重试。
类似于此:
数据本质上是时间序列,处理是时间敏感的。
我不知道这个图案有没有名字。但我在apacheactivemq中发现了类似于我的用例的消息分组,但不是确切的解决方案。另外,它对node.js的支持也很有限。
请推荐任何满足此用例的队列库(具有良好的node.js支持)或模式。此外,在主题中引入优先级或时间序列优先级的可能性。
暂无答案!
目前还没有任何答案,快来回答吧!