我正在开发一个项目,在这个项目中,我需要异步调用多个并发 Web 服务(至少 5 个 Web 服务)。为此,可以使用 Vertx、node 或 Play 框架
谢谢
我正在开发一个项目,在这个项目中,我需要异步调用多个并发 Web 服务(至少 5 个 Web 服务)。为此,可以使用 Vertx、node 或 Play 框架
谢谢
在游戏中,开箱即用的工作太多了。如果您可以浪费一些时间来编写自己的工具,Node js 会很好。
所有这些框架都可以使用。
免责声明:我在 Play 框架上工作。
鉴于 Play 的 Scala 传统,即使您使用 Java,我们也提供 Promises,以便您可以推理进行异步调用的流程,而不会遭受所谓的“回调地狱”。您可能还想考虑对 Node 使用 Promise ......我相信它们是可用的。我认为 Vert.x 也可以在那里提供一些东西。我不确定,但我不相信 Node 和 vert.x 提供开箱即用的承诺。
您可能会发现此页面很有用:http ://www.playframework.com/documentation/2.2.x/ScalaWS
您可以将 vertx 与 RxJava 模块一起使用(https://github.com/vert-x/mod-rxvertx)。您可以随意组合异步结果。rxvertx 模块支持 EventBus、HttpServer、HttpClient、NetServer、NetClient 和 Timer 的包装器。
播放文档不是很好。如果您正在考虑在 scala 中实现 play 可能是一个不错的选择,但对于 java,您可能会发现它并不那么好,因为 Java 不支持一些东西(例如,要编写自己的 body 解析器,您需要使用 scala)
Nodejs 可能是一个不错的选择,但是在 nodejs 中利用所有 cpu 内核是很困难的。有一个框架 jxcore 声称对此有解决方案,但是,我没有使用它。
Vert.X IMO 可以是一个很好的框架,它很好地利用了所有的 cpu 核心,提供了 N 个事件循环。如果您确实需要执行 cpu 密集型操作并做出响应,您可以选择使用工作线程池。