【问题标题】:Http GET response timeHttp GET 响应时间
【发布时间】:2016-01-20 10:53:21
【问题描述】:

我有一个 Spring Web 应用程序,我在几个 URL 上调用 Http GET 并使用结果更新数据库。我的问题是,GET 能有多快(或多慢)? 我应该使用第二个线程对 URL 列表执行此操作并在主线程中等待此操作完成吗?例如,如果其中一个 URL 没有响应(或者速度很慢)会阻止我的程序吗?还是会立即用相应的代码响应?

【问题讨论】:

  • spring 中有一个异步查询的功能。 Asynchronous Methods
  • 我知道,但问题是:在这种情况下这是个好主意/必要吗?
  • 这完全取决于您的用例。如果必须完成的所有用户操作都取决于这些调用后获得的结果,那么这是一个坏主意。但是如果还有其他操作/任务可以独立于这些调用的结果继续,那么你可以继续。从用户的角度思考。如果你的应用程序的响应能力可以通过异步调用来提高,那么我建议你继续这个实现。

标签: java multithreading spring get


【解决方案1】:

通过具有高延迟的网络(互联网)进行的远程 I/O 操作通常缓慢。如果您要访问的远程服务调用(在您的示例中为 GET 请求)彼此独立,即。您不需要一个调用的结果来调用另一个调用,那么通过启用异步处理来引入并行性非常容易/直接。 Spring's async infrastructure 可能是一个很好的候选人。如果它们相互依赖,那就有点复杂了。您可以使用称为Reactive Programming 的编程范例和类似RxJava 的相应实现。详情请见ReactiveX

如果您在请求/请求周期内要进行多次此类调用,那么在响应时间性能方面绝对值得付出努力。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 2021-08-28
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 2019-06-27
    相关资源
    最近更新 更多