大型API网关(八)—— 超卖和资源隔离

在这里插入图片描述

超卖

1. 例子

先举个超卖的例子,解释一下什么是超卖。
小高去某运营商办了宽带,100M的,很兴奋,想着看视频肯定不卡了。结果到了晚上,刷视频时,又卡成狗。
第二天白天就又变好了,这是咋回事呢?
聪明的小高想了一下,大概是这个原因:运营商自己一共只有200M的带宽,但是却卖给了10个人,每个人都是100M。平时大家都不会用到100M的上限,而且大家上网时间也可能不一样,这样一来,运营商的200M大多数时间是够用的,但是,当小高、小王、小李、小赵同时在晚上8点开始刷视频时,运营商的带宽就不够用了。
这就是超卖。

2. API网关的超卖

同理,API网关也存在超卖现象。
举两个例子:
第一个例子:网关上有三个接口,每个接口对应的服务可以承载100QPS,但是这些接口平时流量远远低于100,所以网关只准备了能够承载100QPS的机器。
第二个例子: 网关的一个接口可以承载50qps,卖给了10个用户,每个用户的qps上限是10,这些用户平时qps都很小,只有2左右。

3. 超卖引发的问题

第一反应,超卖会导致服务器资源不足,服务崩溃。
但是,前面《大型API网关(四)—— 限流》提到过,限流会保护服务器在流量过高时不至于崩溃。那么,用户的流量将会受到限制。

4. 超卖和成本

超卖问题有有效的解决方案吗?
超卖问题说到底是成本问题,准备够对每个用户承诺的资源,自然就不会有超卖问题了,但是代价太高了。
想一想,一共卖了100000qps,为此准备了100台机器,但是平时qps只有1000,结果每台机器的资源利用率只有可怜的1%,你说浪费不浪费。
那超卖问题就无解了吗?也不是的,我们可以在保障用户稳定性和成本之间做一个tradeoff,比如,只保证一部分用户的稳定性。
怎么做到这一点呢?这就是资源隔离的问题了。

资源隔离

资源隔离的例子,生活中也有很多。
比如,商务座车厢的人可以躺着睡觉,有的座位还是空的,而硬座车厢的人已经挤的双脚离地了。
资源隔离在技术上应用也很多。
比如,kubernetes集群对每个pod的cpu、内存、和存储资源进行了隔离,一个pod资源不够用了,自己崩溃也不会影响其他pod。
对于API网关来说,资源其实就是流量,我们把流量隔离开就可以了。
示意图一看就明白:
在这里插入图片描述

如上图,我们的网关能承载的qps上限是300,每个用户可以使用100qps,我们把流量划分为几个池子。
VIP客户独享qps,重要用户共享一个较大的资源池,普通用户共享一个较小的资源池。这样即使某个池子触发限流,也不会影响其他池子的用户。
对于超级VIP,可以直接搞一个独立的集群给他用。
当然,待遇越好,费用越高。和火车车厢一个道理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值