Ruby - 使用EventMachine / Celluloid

时间:2016-09-04 12:35:53

标签: ruby nonblocking eventmachine puma celluloid

我正在使用puma服务器来收集来自14个HTTP客户端请求的响应的服务。我在请求之间有一些依赖关系,但它们可以在某种程度上并行。每个请求可能需要1.8秒,而ruby / cpu时间仅为50毫秒(97.3%IO)。

目前,我正在使用自动缩放的heroku dynos,每个进程有25个线程。使用MRI / CRuby并假设jRuby将大大提高可扩展性,因为我同意Elyasin's claim

Puma在处理并发请求方面做得很好,而其他请求被IO阻止。但我仍然需要并计划以非阻塞方式并行HTTP客户端请求。

在我的方案中使用vert.xjubilee进行基准测试之前。我希望对EventMachine::MultiRequestCelluloid等标准ruby选项或其他建议选项进行基准测试。为了真正知道有多少jubilee / vert.x比使用事件机器的puma更好。请参阅Ruby benchmarks and jubilee

我的问题是:

  1. 哪种替代品最适合Puma?
  2. 哪种替代方案会以一种方式设计 工作最好的Puma的事件循环,并承诺启用Puma 处理EM::HttpRequest(例如)时的并发请求 "非阻塞等待"作出回应?
  3. 我是否应该使用EventMachine / Celluloid的特定配置或用法来实现这一目标?
  4. 作为一个整体,任何关于这种情况的想法都会受到赞赏。

0 个答案:

没有答案