【问题标题】:Parallel web service calls or Akka actors并行 Web 服务调用或 Akka Actor
【发布时间】:2014-08-20 05:19:36
【问题描述】:

我刚刚了解了 Akka 和 Actor,不确定是否将它们用于我在 Play 框架应用程序中的以下用例。

我想做的是让用户发出网络请求,然后需要进行 20-50 次 Yelp API 调用(并行),获取这些响应,进行一些处理并将它们组合成一个结果。

我想知道的是,使用 Akka Actor 是否会提高可伸缩性并减少对用户的响应时间。与仅在我的控制器代码中进行 WS 调用相比(每个都使用未来),使用演员是否会给我带来任何好处。

我想我无法理解在这种情况下使用演员可能会给我带来什么好处,而不仅仅是一堆异步网络请求。

【问题讨论】:

    标签: parallel-processing akka


    【解决方案1】:

    Actor 本身只是实现和管理并行性的一种手段。例如,您获得的收益是每个您发出的异步请求启动一个参与者是监督层次结构。例如,如果其中一个请求失败,或者仅在其中一些请求失败之后等,主 Actor 可以决定以透明的方式终止响应失败消息。您可以发出重新启动(这些请求的重试)等。没有 Actor,您必须自己实现所有这些监督逻辑——一段时间后会变得非常重复。

    回答您关于可扩展性和响应时间的问题:遗憾的是,“这取决于”您的确切访问模式,但总的来说是的,因为您可以比仅使用一个异步 http 客户端更好地微调它们,并且更轻松地实现重试.

    如果您想了解如何使用 Actors 从许多异步请求中收集响应,请参阅“Waiting on multiple Akka messages”上堆栈溢出的答案。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 2020-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多