Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 解决方案/体系结构:队列还是其他?_Ruby_Node.js_Architecture_Distributed Computing_Solution - Fatal编程技术网

Ruby 解决方案/体系结构:队列还是其他?

Ruby 解决方案/体系结构:队列还是其他?,ruby,node.js,architecture,distributed-computing,solution,Ruby,Node.js,Architecture,Distributed Computing,Solution,我的服务有多个前端是用Node.js编写的,工人是用Ruby编写的。现在的问题是如何让他们沟通?我需要维护动态的工作人员池来处理负载(负载上升时会产生更多的工作人员),消息非常大~2-3M,因为我通过Node.js frontends向用户上传的工作人员发送图像。因为我想要更好的扩展,我考虑了一些排队解决方案,但我没有找到任何现有的解决方案(或被误解的指南),可以提供: 后备机制。到目前为止,我发现的解决方案只有一个故障点—MessageBroker,并且没有提供回退的方法 序列化。因此,当代理

我的服务有多个前端是用Node.js编写的,工人是用Ruby编写的。现在的问题是如何让他们沟通?我需要维护动态的工作人员池来处理负载(负载上升时会产生更多的工作人员),消息非常大~2-3M,因为我通过Node.js frontends向用户上传的工作人员发送图像。因为我想要更好的扩展,我考虑了一些排队解决方案,但我没有找到任何现有的解决方案(或被误解的指南),可以提供:

  • 后备机制。到目前为止,我发现的解决方案只有一个故障点—MessageBroker,并且没有提供回退的方法
  • 序列化。因此,当代理失败时,任务不会丢失
  • 传递重要信息的能力
  • Ruby和Node.js的简易API
  • 一些API来跟踪队列大小,以便我可以重新安排工作人员池
  • 轻巧的

  • 也许我的方法错了?也许我不应该使用队列,但用其他方式?或者有符合上述要求的排队解决方案?

    redis publish/subscribe应该可以做到这一点


    毫无疑问,您需要一个队列来扩展,您可以监视此队列以生成“工作人员”

    非常健壮,支持REST协议。Ruby客户端也可以访问队列


    关于

    的有趣文章在一天结束时,我采用了队列解决方案。非常快速、健壮和轻量级的实现。必须编写自己的代理,但这是此解决方案的唯一缺点。

    当您说队列是指与rabbit MQ类似的东西时?我见过rabbit MQ,它似乎更适合,但我没有erlang,也没有在难以部署的包中部署它。从我所读到的内容来看,它增加了很多延迟,以防你需要传递大消息时。它不会。这里需要请求/应答模型。