0

目前我正在使用 Jersey 1.0 并即将切换到 2.0。对于 REST 请求,可能会持续一两秒以上,我使用以下模式:

  1. 客户端调用 GET 或 PUT
  2. 服务器返回一个轮询 URL 给客户端
  3. 客户端轮询 URL,直到它重定向到已完成的资源

相当标准和直接。但是,我注意到 Jersey 2.0 具有 AsyncResponse 功能。但看起来这是在电线上没有任何变化的情况下完成的。换句话说,当服务器异步处理请求时,客户端仍然阻塞结果。

那么这有什么好处呢?我应该使用它而不是我当前的异步方法来调用 > 1 秒吗?或者它真的只是为了让服务器上的连接释放出来,只需要几百毫秒的调用?

我希望我的服务器尽可能具有可扩展性,但我现在使用的方法对客户端来说可能很乏味。AsyncResponse 看起来超级简单,但我不确定它如何适用于需要非常短的连接时间的 heroku 服务。

4

1 回答 1

0

就线程池资源而言,AsyncResponse 可能为您在 Web 应用程序服务器中为标准标准请求提供了更大的可扩展性,但我认为它不会改变客户端体验的任何内容,这将继续阻止读取其连接。因此,如果您已经从客户端实施了轮询解决方案,那么恕我直言,这不会为您增加太多任何价值。

于 2013-07-11T21:22:02.640 回答