使用基于AMQP的服务器比使用beanstalkd或redis更有吸引力吗?

我正在编写一个项目,负责处理面向数据服务器的主应用程序之外的任务,这是使用Node.js用JavaScript编写的。 它需要处理将来计划的任务,并有可能处理“现在”的任务。 “现在”只是意味着下一次工作人员可以使用时,将会执行该任务,所以这一点可能无关紧要。 工作人员都要和外部资源交stream,一个例子就是发邮件。 我们是一个小商店,我们没有太多的资源,所以我不想做的一件事是在这个过程中开始混合语言,我已经看到Node可以很容易地为我们做这个,所以这就是我们要去的地方,除非在我开始编码之前看到一个令人信服的理由。

总之,我不能说是否有一个令人信服的理由来使用基于AMQP的服务器,比如像Openue或RabbitMQ这样的类似Kue或Beanstalkd的节点客户端。 那么,我们走吧:

使用基于AMQP的服务器比使用Kue的beanstalkd或redis更有吸引力吗? 如果是,那么基于AMPQ的服务器最适合我所布置的架构? 如果不是,哪个nosql解决scheme(beanstalkd,redis / Kue)最容易设置和部署速度最快?

       

网上收集的解决方案 "使用基于AMQP的服务器比使用beanstalkd或redis更有吸引力吗?"

FWIW,我还没有接受我的答案,我将解释我已经决定了什么,为什么。 如果我没有得到任何似乎比我所决定的更好的答案,我会稍后再接受我自己的答案。

我决定了Kue。 它支持多个asynchronous运行的工作,并且可以利用群集来利用多核系统。 它很容易扩展提供安全性。 它得到了Redis的支持,Redis完全用它来做这个事情,所以我知道我没有用未经证实的软件来支持我的工作stream程服务器(这并不是说其他​​任何一个都没有得到证实)。

我selectKue最引人注目的原因是它提供了一个JSON API,这样客户端应用程序(第一个客户端将成为一个基于Web的应用程序,但我们也计划制作智能手机应用程序)可以轻松地添加工作,而无需通过面向节点实例的主应用程序,当我写这个时,我完全可以完全脱离我的团队的其他人。 我不需要路线,我不需要任何东西,这一切都提供给我,所以我不需要写任何东西来支持这个。 这还有另外一个好处,只是为了提供l / p安全性,只有授权客户才能添加作业,所以我不必直接将我的redis服务器公开给客户端应用程序。 它还有一个内置的Web控制台,API允许客户端很容易地撤回与给定用户关联的作业列表,所以我们可以在一个漂亮的日历视图中向用户显示他们所有的计划任务。

另一个令人信服的理由是缺乏与获取Redis和Kue相关的陡峭的学习曲线。 我之前设置了redis,Kue简单而有效。

是的,我是一个懒惰的开发者,但我是一个很好的懒惰的开发者。

更新:

我有它工作和做工作,吞吐量是惊人的。 我将任务编组逻辑分解成它自己的节点实例,基本上我所要做的就是将我的repo部署到一台新机器上,并运行节点task-server.js来扩展我的工作人员。 我可能需要增加一些更多的求职电话给Kue,因为我给了几件事情,但这很容易。