Java Http获取响应时间
我有一个SpringWeb应用程序,在这个应用程序中,我在几个URL上调用Http GET,并用结果更新数据库。我的问题是,你能跑多快(或慢)?Java Http获取响应时间,java,multithreading,spring,get,Java,Multithreading,Spring,Get,我有一个SpringWeb应用程序,在这个应用程序中,我在几个URL上调用Http GET,并用结果更新数据库。我的问题是,你能跑多快(或慢)? 我是否应该使用第二个线程对URL列表执行此操作,并在主线程中等待此操作完成?例如,如果其中一个URL没有响应(或者速度慢),会阻止我的程序吗?或者它会立即响应相应的代码吗?在高延迟网络(internet)上的远程I/O操作通常缓慢。如果您想要访问的远程服务调用(在您的示例中获取请求)彼此独立,即,您不需要一个调用的结果来调用另一个调用,那么通过启用异步
我是否应该使用第二个线程对URL列表执行此操作,并在主线程中等待此操作完成?例如,如果其中一个URL没有响应(或者速度慢),会阻止我的程序吗?或者它会立即响应相应的代码吗?在高延迟网络(internet)上的远程I/O操作通常缓慢。如果您想要访问的远程服务调用(在您的示例中获取请求)彼此独立,即,您不需要一个调用的结果来调用另一个调用,那么通过启用异步处理来引入并行性是非常容易/直接的。可能是一个很好的候选人。如果他们相互依赖,情况就复杂一点。您可以使用一个名为的编程范例和相应的实现,如。有关更多详细信息,请参阅
如果在一个请求/请求周期中有许多这样的调用,那么就响应时间性能而言,这绝对值得付出努力。spring中有一个用于异步查询的功能。我知道,但问题是:在这种情况下这是个好主意/必要吗?这完全取决于您的用例。如果必须执行的所有用户操作都取决于这些调用后获得的结果,那么这是个坏主意。但是如果有其他操作/任务可以独立于这些调用的结果继续进行,然后你可以继续。从用户的角度考虑。如果你的应用程序的响应能力可以通过异步调用来提高,那么我建议你继续这个实现。