我有一组 Java AppEngine 应用程序,其结构如下:
- 休息服务
- 网页前端
这两个组件托管在 2 个单独的 AppEngine 实例(付费)上,这是设计应用程序的标准方式,对我来说很有意义,因为我也从其他客户端(移动应用程序等)访问 REST 服务,所以我会喜欢把它分开。
我遇到的问题是,即使我直接访问 REST 服务(从浏览器或移动应用程序获取)响应总是很好,但从我的 AppEngine 前端访问 REST 服务时,响应时间有时非常不稳定。
我运行了一堆测试,虽然从浏览器到 REST 服务执行 GET 总是相当快地返回,但从我的 AppEngine 前端到 REST 服务的调用可能会从与从浏览器返回的速度一样快到花费 > 10 秒(导致超时等)通常响应时间不那么合理(秒而不是 100 毫秒)。
如果总体上存在延迟,我可以理解平均而言,一切都需要几乎相同的时间来获得响应,但我不明白的是从其他任何地方调用服务和从AppEngine 实例调用它之间的区别。
我不得不说这并不总是发生,好几个星期,然后有一些非常糟糕的日子(今天不算是全面停电),尽管总的来说我对应用程序感到非常高兴-engine,有时让我怀疑我在这个平台上投资是否犯了一个错误。
我正在寻找解释:当排队从 AppEngine 实例传出的这种非常标准的 http 请求时,这是某种固有的 AppEngine 限制吗?
此外,我一直在考虑可能的解决方法 - 也许我应该将服务托管到与前端相同的实例中,但我真的不想这样做,我将它作为最后的手段。
任何建议表示赞赏。