基本上我有一个在工作节点之间分配任务的主节点。工作人员的数量可能会改变,这意味着工作人员不能在服务器端进行硬编码。Master 向队列提交一个任务,其中一个工作人员接受这个任务,处理它并返回结果。最关键的方面是低延迟。工作节点上的典型处理时间约为 100-300 毫秒,这意味着消息系统不应该对处理时间增加明显的延迟。
目前我正在研究请求-响应 JMS 模式。这意味着 master 会将任务提交到共享队列,worker 将从队列中取出任务并将结果提交到另一个由 master 节点侦听的队列。Master 会将响应与请求相关联。
恐怕JMS可能会给系统带来延迟,这是不能接受的。也许我应该看看其他解决方案?比如 RabbitMQ、JGroups 还是 ZooKeeper?
如果 JMS 适合这里,你能推荐最快的 JMS 代理吗?目前我正在看 ActiveMQ
该解决方案的另一个要求是它应该能够在云中工作