4

我有一组 Java AppEngine 应用程序,其结构如下:

  • 休息服务
  • 网页前端

这两个组件托管在 2 个单独的 AppEngine 实例(付费)上,这是设计应用程序的标准方式,对我来说很有意义,因为我也从其他客户端(移动应用程序等)访问 REST 服务,所以我会喜欢把它分开。

我遇到的问题是,即使我直接访问 REST 服务(从浏览器或移动应用程序获取)响应总是很好,但从我的 AppEngine 前端访问 REST 服务时,响应时间有时非常不稳定。

我运行了一堆测试,虽然从浏览器到 REST 服务执行 GET 总是相当快地返回,但从我的 AppEngine 前端到 REST 服务的调用可能会从与从浏览器返回的速度一样快到花费 > 10 秒(导致超时等)通常响应时间不那么合理(秒而不是 100 毫秒)。

如果总体上存在延迟,我可以理解平均而言,一切都需要几乎相同的时间来获得响应,但我不明白的是从其他任何地方调用服务和AppEngine 实例调用它之间的区别。

我不得不说这并不总是发生,好几个星期,然后有一些非常糟糕的日子(今天不算是全面停电),尽管总的来说我对应用程序感到非常高兴-engine,有时让我怀疑我在这个平台上投资是否犯了一个错误。

我正在寻找解释:当排队从 AppEngine 实例传出的这种非常标准的 http 请求时,这是某种固有的 AppEngine 限制吗?

此外,我一直在考虑可能的解决方法 - 也许我应该将服务托管到与前端相同的实例中,但我真的不想这样做,我将它作为最后的手段。

任何建议表示赞赏。

4

1 回答 1

0

我可以看到 2 个原因

1.外部访问您的 REST 服务,缓存被优化,因为客户端是各种版本的浏览器。内部访问 REST 服务的前端应用程序可能没有实现非常好的缓存机制。

2.AppEngine是否对内部流量收费?如果不是,那么这可能是给予外部 IP 优先于内部 IP 的原因?

于 2013-01-16T05:33:01.197 回答