我注意到大多数充当Web服务客户端的架构使用代理与其余服务器通信?虽然有可能不使用代理服务器来访问REST服务,例如一个我读过的是这个地方,它使用代理服务器与静止服务器通信是否有使用代理来访问REST服务的任何优势?
对于小型本地应用程序Web服务,通常不需要使用代理.它主要取决于您的服务器负载(客户端数量,请求频率)以及访问您的服务的网络区域:后台服务器到服务器,前台局域网,WAN或整个互联网).
REST Web服务主要是在线资源,由URL以独特方式标识,并且通常以经典HTTP方式提供.从客户端来看,他不知道他得到的数据是静态的,动态的还是缓存的.他只是将数据看作是静态的.
在大型应用程序中,随着客户端,资源和Web服务请求的增加,您需要技术组件来处理问题,例如用户平衡,随着应用程序的发展对Web服务的使用情况跟踪.您还希望为客户提供最佳性能.使用代理解决方案可以有效地实现这一点.
NOT使用代理的优点:
简单
使用基于代理的解决方案的优点:
从单个集中入口点重写URL(而不是在每个服务器/ app/ws配置上异构设置).
跟踪Web服务的使用情况(全局)
增强性能(缓存,平衡到专用服务器)
管理API版本(从/ myAPI-V1切换到gobally/myAPI到/ myAPI-V2很容易完成,然后回头看看)
即时修改一些API调用(版本之间的兼容性,执行初步输入数据验证或向调用添加技术信息).
全局管理Web服务安全性(控制IP,每个用户的配额等).
希望这能回答你的问题.
编辑 (回答评论)
代理可以充当缓存.对于常见问题资源(REST服务),它可以为多个用户提供相同的响应.您的服务将被称为juste一次,即使此资源有100个请求.
但这取决于您的服务的实际使用方式,因此您需要跟踪请求以了解缓存在您的情况下是否有用.
你有多少用户?
有多少网络服务?
是否提供了各种数据/资源?
您的服务有多快(单独)?
什么是网络性能?(LAN?WAN?Internet?Mobile?)
有多少服务器和应用程序为用户服务?
您是否遇到任何网络负载问题?
代理无法"加速"您现有的服务,但它可以增强您为客户提供资源的方式.
如果您不知道是否需要,请不要使用代理.您必须知道您的实际系统架构是什么,以及缺点和瓶颈是什么.