为什么常见的Web服务客户端使用代理

时间:2013-12-24 08:22:10

标签: web-services rest service proxy

我注意到大多数充当Web服务客户端的架构使用代理与其余服务器通信?虽然可以在没有代理服务器的情况下访问休息服务,但我读过的一个示例是this,它使用代理服务器与其服务器进行通信是否有使用代理访问其余服务器的任何优点服务?

1 个答案:

答案 0 :(得分:5)

对于小型本地应用程序Web服务,通​​常不需要使用代理。它主要取决于您的服务器负载(客户端数量,请求频率)以及访问您的服务的网络区域:后台服务器到服务器,前台局域网,WAN或整个互联网)。

REST Web服务主要是在线资源,由URL以独特的方式识别,通常以经典的HTTP方式提供。从客户端来看,他不知道他得到的数据是静态的,动态的还是缓存的。他只是将数据看作是静态的。

在大型应用程序中,随着客户端,资源和Web服务请求的增加,您需要技术组件来处理问题,例如用户平衡,随着应用程序的发展对Web服务的使用情况跟踪。您还希望为客户提供最佳性能。这可以通过代理解决方案有效实现。

NOT使用代理的优点:

  • 简单

使用基于代理的解决方案的优势:

  • 从单个集中入口点重写URL(而不是在每个服务器/ app / ws配置上异构设置)。
  • 跟踪您的网络服务的使用情况(全球)
  • 增强性能(缓存,平衡到专用服务器)
  • 管理API版本(从/ myAPI-V1切换到gapally / myAPI到/ myAPI-V2很容易完成,然后回头看看)
  • 即时修改某些API调用(版本之间的兼容性,执行初步输入数据验证或向调用添加技术信息)。
  • 全局管理网络服务安全(控制IP,每用户配额等)。

希望这能回答你的问题。

修改 (回答评论)

代理可以充当缓存。对于常见问题资源(REST服务),它可以为多个用户提供相同的响应。您的服务将被称为juste一次,即使此资源有100个请求。

但这取决于您的服务的实际使用方式,因此您需要跟踪请求以了解缓存是否有用。

  • 你有多少用户?
  • 有多少网络服务?
  • 是否提供了各种数据/资源?
  • 您的服务有多快(单独)?
  • 什么是网络性能? (LAN?WAN?Internet?Mobile?)
  • 为您的用户提供多少台服务器和应用程序?
  • 您是否遇到任何网络负载问题?

代理无法“加速”您现有的服务,但它可以增强您为客户提供资源的方式。

如果您不知道是否需要代理,请不要使用代理。您必须知道您的实际系统架构是什么,以及缺点和瓶颈是什么。