如何优化REsT webservice调用调用以减少池内容所需的时间?

时间:2015-07-14 06:52:19

标签: java rest

我正在开展一个非常频繁地需要REsT webservice调用的项目。我们正在使用Apache Outh2来制作

  1. 客户请求:OAuthBearerClientRequest
  2. 授权:OAuthBearerClientRequest(                     URL).setAccessToken
  3. 得到回复:OAuthResourceResponse。
  4. 但是,每次WS调用需要花费更多时间来响应。 只是想知道在这种情况下优化WS调用的方法是什么,以便减少内容加载时间?

2 个答案:

答案 0 :(得分:5)

如果在应用程序中使用spring,则可以考虑 spring的缓存

缓存是隐藏的,它会提高应用程序的性能,但可以通过快速方式多次读取相同的数据来实现。

Spring Documentation:

中所述
  

抽象的核心是将缓存应用于Java方法,从而减少了基于缓存中可用信息的执行次数。   也就是说,每次调用目标方法时,抽象都将应用缓存行为,检查是否已经执行了该方法给定的参数。如果有,则然后返回缓存的结果而不必执行实际方法; 如果没有,则执行方法,结果缓存并返回给用户,以便下次调用方法,返回缓存的结果。这样,昂贵的方法(无论是CPU还是IO绑定)只能对给定的一组参数执行一次,并且重用结果而不必再次实际执行该方法。缓存逻辑是透明应用的,不会对调用者造成任何干扰。

 @Cacheable("books")
 public Book findBook(ISBN isbn) {...}

在上面的代码段中,方法findBook与名为books的缓存相关联。每次调用该方法时,都会检查缓存以查看调用是否已经执行,并且不必重复。

这只是一个让您了解弹簧缓存的示例。这个例子已经在他们的官方网站上提供,你可以参考并从here获得详细的知识。

您还可以找到here的更多示例。

答案 1 :(得分:1)

您是否使用gzip压缩数据?通常,上传速度比大多数网络上的下载速度慢。因此,在进行REST调用时使用gzip压缩。

更多信息herehere