Web services API节流最佳实践

Web services API节流最佳实践,web-services,api,soap,throttling,Web Services,Api,Soap,Throttling,我有一个SOAP api,我想在“x”很多调用在“y”时间内被接收后,根据用户限制对它的访问 在搜索之后,第1个考虑(显然)是考虑何时节流用户的参数。然而,我并没有看到太多实施这种解决方案的最佳实践/示例。我确实看到了有意义的结果。但我不得不相信还有更多的想法 关于如何实施节流解决方案,还有其他人吗?问题包括: 是否有框架提供了在web API中进行节流的功能(如Spring等) 在我看来,您需要存储每个用户的访问信息。如何最大限度地减少每次调用的数据库开销 您是否需要访问数据存储来实现此功能

我有一个SOAP api,我想在“x”很多调用在“y”时间内被接收后,根据用户限制对它的访问

在搜索之后,第1个考虑(显然)是考虑何时节流用户的参数。然而,我并没有看到太多实施这种解决方案的最佳实践/示例。我确实看到了有意义的结果。但我不得不相信还有更多的想法

关于如何实施节流解决方案,还有其他人吗?问题包括:

  • 是否有框架提供了在web API中进行节流的功能(如Spring等)
  • 在我看来,您需要存储每个用户的访问信息。如何最大限度地减少每次调用的数据库开销
  • 您是否需要访问数据存储来实现此功能

不管它值多少钱,我在完成其他一些生产项目后,已经回答了这个问题

  • 自制:如果您有自己的算法要实现,那么在执行API方法代码之前使用切入点绕过方法调用是一种自制方法。这最终是非常优雅和灵活的,因为您可以在决定如何处理请求之前捕获大量元数据
  • API管理服务:如果您谈论的是一个生产系统,并且您有预算,那么最好的方法可能是将其委托给API管理层,如或 优点是它将关注点分开,因此更容易更改,并允许您只关注API。如果业务涉众参与其中,并且您需要一个良好的UI和术语词典,那么这将特别有用

    缺点,当然是成本和供应商锁定


    希望这对别人有帮助

    请注意,漏桶更适合流量(不可计数、流动的内容),您可以使用它来调整请求/呼叫速率。只是有一点不同——机制是一样的,但不是往桶里倒水,而是添加了可计数的令牌,这更适合于请求。