<分区>
背景
在一个开源项目中工作,我们有很多后端处理任务,有些繁重,有些轻量级,速度非常快。
我们决定使用作业队列来处理不同的作业,因为使用队列我们可以扩大消费者的规模,从而一次执行更多的作业,并保证即使 worker 崩溃也能实际执行作业。
要求
可靠性很重要。我们希望能够确保每个作业都已完成,即使执行它的工作人员崩溃、队列崩溃或系统崩溃也是如此。
我们还希望能够在重载队列上扩展工作模块。
From RabbitMQ's tutorial, 我已经看到它有可靠的模式(对于工作,以及 channel ,所以如果任何崩溃,工作都不会丢失)并且支持完全按照我想要的方式缩放,但它不使用 Redis(我可以'不知道是赞成还是反对)。
我也研究过 Kue,但它的 API 非常繁琐,我无法立即判断它是否适合我。
我还听说过 Disque(来自 Redis 的作者)、Bull、Kafka 等,并对可用技术的数量感到困惑。
是否有人熟悉不同的队列技术,并且可以根据要求说出最适合项目的队列技术?