使用本地 http 调用的开销

Pab*_*dez 5 api rest http

我正在围绕现有的 RESTful API 开发一个包装器。我基本上要做一些预处理,调用底层API,还有一些预处理,中间有一点缓存。该 API 专为通过 http 进行 RESTful 访问而设计。

我的问题是,我应该重构 API 以便可以通过代码调用它,还是应该对其进行本地 http 调用。第二个选项看起来不错,因为它增加了解耦,但我担心创建 http 请求/响应会严重影响性能。我听说couchDB做了类似的事情(它的 api 是 RESTful 的并且通过 http 访问)。

小智 5

没有人能为您回答这个问题,因为这在很大程度上取决于您当前的 RESTful API 的实现方式。例如,您可以编写一个相对较短的 C 程序,它将侦听套接字并处理 HTTP 请求 - 如果它执行 RESTful 操作来响应不同的 HTTP 方法,那么它就是 RESTful API 的实现,并且开销非常小只需直接调用底层函数(无需 HTTP)。另一方面,您可以将程序编写为这个臃肿、沉重的 Java EE 怪物 - 在这种情况下,开销可能会相当大。

因此,斯卡夫曼说的“测量一下然后看看”是正确的——这确实是获得有意义答案的唯一方法。

话虽如此,如果您问这个问题,那么您很可能并没有真正面临 Google 规模的问题,因此,如果重构需要大量工作,并且拦截 HTTP 请求对您来说很容易,那么我建议您首先使用 HTTP 包装器获得所需的功能,只有当您拥有可用的产品后才开始担心性能优化。