BullMQ和其他消息队列实现之间有什么区别?

11

我一直在查看BullMQ的文档:

https://github.com/taskforcesh/bullmq

https://docs.bullmq.io/what-is-bullmq

我注意到在它的比较图表中没有包含像RabbitMQ或NATS Streaming这样的项目。BullMQ似乎是一个处理单个或多个服务器上的简单“作业”的解决方案。

为什么BullMQ比其他消息队列实现更适用于简单的“作业”?我正在尝试理解在何时选择一个实现比另一个更有意义。


7
将BullMQ和RabbitMQ进行比较就像比较苹果和橙子一样。BullMQ是一个作业队列实现,支持定义像编排剧情一样的作业。而RabbitMQ、NATS、Kafka、MQTT等则是消息队列。 - jorgenkg
2
@jorgenkg 感谢您的回复,我问这个SO问题是因为虽然我知道它们是完全不同的东西,但我却不明白为什么。NATS或者RabbitMQ不能完成BullMQ的工作吗?我感觉它们应该可以吧? - McFlurriez
6
不,BullMQ不具备开箱即用的功能。这是因为BullMQ是建立在消息队列Redis Stream之上的应用程序层。可能还有其他类似于BullMQ的库,可在其他消息代理之上运行。 - jorgenkg
1个回答

0

一个区别是Bullmq完全没有后端,只有Redis。所有与消息队列相关的逻辑都在SDK中。

需要指出的是,bullMQ主要针对nodejs设计,Python的开发正在进行中。

我认为主要的区别是bullMQ具有可以用于创建流程的父子关系。

另一个特点是我不记得其他消息队列中有的沙盒处理器(使用nodejs工作线程)。

我还建议阅读关于agenda的内容。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接