首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确保优先级API在其相关(非优先级) API上循环的最优模式是什么?

确保优先级API在其相关(非优先级) API上循环的最优模式是什么?
EN

Software Engineering用户
提问于 2019-01-28 21:52:10
回答 1查看 300关注 0票数 -1

我有两个执行相同工作的同步web API,但其中一个需要优先于另一个(前者是从客户端调用的,而后者是客户机调用之前的缓存优化)。

制约因素:

  1. 这两个API都可以访问相同的资源(例如VM和存储),而且我不能添加更多的资源
  2. 两个APIs都必须保持同步。
  3. 我希望确保优先级API优先于优化API,但最好不要挨饿。
  4. API是无状态的。

问:什么是适当的模式,以确保优先级API总是得到循环,而不是饥饿的任何一个API?优先级API比优化API获得更多令牌的节流机制是否合适?

EN

回答 1

Software Engineering用户

发布于 2019-01-28 23:29:39

我想您可以让中间人跟踪有多少VM在做什么(与以前的Apache服务器生成策略不同)。

在每个时刻,只有在存在足够多的空闲VM(或者期望在合理的时间片内存在,如果知道调用开始时间和平均呼叫持续时间)来满足对高优先级调用的任何需求时,才能调用优化API。这将确保传入的高优先级呼叫能够立即得到服务(这假设在我们可以放置优先级代理的地方没有其他争用)。

您可以随时跟踪实际的空闲池大小,以尽量减少未加载的VM的数量(也就是说,如果使用X空闲VM,总有100%的高优先级呼叫被发送,则可以将X减少1,然后继续这样做,直到您在舒适的数字上徘徊,比如95%)。

另一方面,这意味着您的中间人不能分批打电话,除非有很多VM是免费的。不能对呼叫进行批处理可能会影响性能,而另一方面,保持过多的VM空闲肯定会影响性能。

此外,您还可以跟踪正在进行的呼叫--如果已经发出了呼叫,并且通过了对相同参数的高优先级请求,则等待上一次呼叫终止可能比立即将请求发送到空闲VM更方便。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/386239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档