【发布时间】:2015-03-31 11:22:10
【问题描述】:
基本上我有一个在工作节点之间分配任务的主节点。工作人员的数量可能会改变,这意味着工作人员不能在服务器端进行硬编码。 Master 向队列提交一个任务,其中一个工作人员接受这个任务,处理它并返回结果。最关键的方面是低延迟。工作节点上的典型处理时间约为 100-300 毫秒,这意味着消息传递系统不应给处理时间增加明显的延迟。
目前我正在研究请求-响应 JMS 模式。这意味着master将任务提交到共享队列,worker将从队列中取出任务并将结果提交到另一个由master节点监听的队列。 Master 会将响应与请求关联起来。
恐怕JMS会给系统带来延迟,这是不可接受的。也许我应该看看其他解决方案?比如 RabbitMQ、JGroups 或 ZooKeeper?
如果 JMS 适合这里,你能推荐最快的 JMS 代理吗?目前我正在研究 ActiveMQ
对解决方案的另一个要求是它应该能够在云中工作
【问题讨论】:
-
如果处理一个作业需要 100-300 毫秒,相比之下,队列的延迟可能相当微不足道。使用上述任何技术将队列延迟降低到几毫秒应该不难。
标签: jms activemq rabbitmq apache-zookeeper jgroups