Rabbitmq或Gearman – select一个工作队列

在工作中,我们需要构build一个作业服务器,用于发送电子邮件,构buildPDF,处理一些数据等等。显然,我们希望build立在某种通用排队系统上。 我对Gearman很熟悉,而这正是它试图解决的一个确切问题:把工作放在工作人员来接他们的队列中。 但是,我看到很多关于Rabbitmq的提及,在这种情况下我不清楚它是如何使用的。

Rabbitmq是一个构build分布式作业系统的好框架吗?

我想说,Gearman更适合排队“工作”,而RabbitMQ更适合排队“数据”。 当然,他们两个都是一样的,但是对我来说,这样做的方式是,如果你想“扇出”要完成的工作,并且工人可以独立工作,那么Gearman是更好的方法。 。 但是,如果您试图将来自大量数据源的数据提供给更less的数据使用者,那么RabbitMQ就是更好的解决scheme。

RabbitMQ的历史可以让Twitter采集突发性的消息,并将它们提供给能够保持一个连接打开的硬的旧的SMS网关,但速度有限,并且没有重试,说明了这种问题RabbitMQ擅长解决。

这一切都取决于你想要公开的语义。 Gearman在RabbitMQ上做的事情真的很容易,他们当然可以向独立工作人员发送消息。

但是Gearman是为了目的而build造的。 IIUC,Gearman是一个处理工作框架,而不是一个消息系统。 还有其他的这样的框架,如Celery使用RabbitMQ。 这是一篇关于芹菜的文章 ,值得一读。