低延迟消息队列

and*_*hov 5 activemq-classic jgroups jms rabbitmq apache-zookeeper

基本上,我有一个主节点,用于在工作节点之间分配任务。工作人员的数量可能会发生变化,这意味着工作人员无法在服务器端进行硬编码。Master向队列提交一个任务,其中一个worker接收该任务,处理它并返回结果。最关键的方面是低延迟。工作节点上的典型处理时间约为 100-300 毫秒,这意味着消息传递系统不应给处理时间增加明显的延迟。

目前我正在研究请求-响应 JMS 模式。这意味着master将任务提交到共享队列,worker将从队列中取出任务并将结果提交到主节点监听的另一个队列。主人会将响应与请求关联起来。

恐怕JMS可能会给系统带来延迟,这是不可接受的。也许我应该看看其他解决方案?比如 RabbitMQ、JGroups 还是 ZooKeeper?

如果 JMS 适合这里,您能推荐最快的 JMS 代理吗?目前我正在研究ActiveMQ

该解决方案的另一项要求是它应该能够在云端工作

小智 0

您应该看看这里 [1],Rabbitmq 有一篇很好的性能文章以及有关延迟的讨论。

快速总结一下,我不得不说,Rabbitmq 在某些压力情况下可以采用 400 毫秒的延迟值,但通常在发送速率较低的情况下,它最接近 40 毫秒或更短。看一下(尝试的发送速率与延迟图表)

顺便说一句,您还应该考虑您的网络延迟。该基准测试显示了本地主机性能。

[1] http://www.rabbitmq.com/blog/2012/04/17/rabbitmq-performance-measurements-part-1/