gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 05:18:52 26 4
gpt4 key购买 nike

我注意到大多数充当 Web 服务客户端的架构都使用代理与其余服务器通信?虽然可以在没有代理服务器的情况下访问休息服务,但我读过的一个例子是 this它使用代理服务器与其休息服务器通信的地方使用代理访问休息服务有什么优势吗?

最佳答案

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

REST 网络服务主要是在线资源,由 URL 以唯一方式标识,并且通常以经典的 HTTP 方式提供。从客户端来说,他不知道自己拿到的数据是静态的、动态的还是缓存的。他只是简单地获取数据,就好像它是静态的。

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

不使用代理的优点:

  • 简单

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

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

希望这能回答您的问题。

编辑 (回复评论)

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

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

  • 您有多少用户?
  • 有多少网络服务?
  • 提供什么样的数据/资源?
  • 你们的服务(个别)有多快?
  • 网络性能如何? (局域网?广域网?互联网?移动?)
  • 有多少服务器和应用程序为您的用户提供服务?
  • 您是否遇到任何网络负载问题?

代理不能“加速”您现有的服务,但它可以改进您为客户提供资源的方式。

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

关于web-services - 为什么常见的 Web 服务客户端使用代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20757390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com