API,构建API但为某些请求提供优先权

时间:2010-12-23 17:34:50

标签: api

不确定其他人是如何解决这个问题的,但一般来说,在使用您自己的公共API时,为自己的应用程序提供优先处理的最佳做法是什么?

1 个答案:

答案 0 :(得分:1)

使用缓存优先级

RAM中的缓存响应或临时计算通常是第一个优化点,因为缓存比微优化所有代码更容易。控制进入缓存的内容以及停留的时间是应用“优先处理”的顶级位置。 我喜欢缓存管理方法比线程优先级更好,因为如果您处于负载下延迟执行请求通常会产生复杂的线程池问题并降低整体服务器吞吐量。

基于加载的缓存(而非应用所有权)将展开资源饼

我们使用MapLarge Tile Server和Geocoding API实现ram缓存优先级方法。但是,我们实际上并没有给自己的应用程序优先级,而是优先考虑呈现响应所需的请求频率和时间。除非你有大量的低价值api用户,否则我建议做类似的事情,因为这种方法应该减少总体负载并使服务器能够处理更多的api请求。

我最近写了一篇白皮书,重点介绍了多租户api环境中缓存和非缓存响应的不同负载配置文件。你可以在这里看到它: http://maplarge.com/Tile-Server-Performance

API政策可以带来收入 如果您有免费或低收入的用户正在产生大量负载,您可能需要检查您的业务计划,并考虑建立基于帐户的速率限制,以可扩展的方式将用户收入与服务器成本相匹配。如果您确实限制API用户,我建议您使用明确且可预测的策略,以便他们可以预测使用情况并知道何时购买API帐户升级。