API网关之流控篇

API网关的一个重要功能就是进行流量的控制,当然这里主要是沿用大众的概念,毕竟限流这个词是很容易普及的,其实更加贴切的说法我更愿意把这个Control使用Adjust,至于原因我这里先不直表,等我文章写完了,答案应该自然就出来了。那么我们先来说说流量控制的几个策略,这里还是主要以控制为主,常见的有熔断、限流,所以我先不使用调整。

熔断

熔断其实字面意思很好理解,但是仔细推敲下来有两个层面的意思:

1、服务端熔断:后端服务的upstream的一个成员或者微服务的一个服务实例响应超时,这时候API网关根据http响应自动对这一个成员或者实例进行限流,使后来的流量打到其他的成员或者实例。

2、客户端熔断:根据某一客户端或者某一组客户端的行为特征,当流量激增并且与业务行为的典型特征不同,这时候API网关根据客户端IP、用户分布等特征进行熔断。笔者曾经遇到过一个案例,某App做新用户注册的运营活动,注册后就给积分,再加上几个线上活动:签到、玩游戏+积分、发帖+积分等一系列操作,基本可以达到1000积分,这1000积分在疫情期间可以兑换口罩、平时可以是JD卡密等,这样的信息被羊毛党盯上了,就会快速跟进,第一次试点了薅了几次羊毛之后,第二次成批的注册用户,然后使用爬虫去签到、玩游戏直接兑换JD卡。这时候就是要用最快的速度反爬、客户端熔断。客户端熔断实际上还有一个更加明显的事件,前几年的双十一实际上支付宝都是对淘系以外的商家进行直接熔断来的,实际就是保障自己的支付服务的正常进行,同时打压一下小电商的双11分流。


Figure-1-API网关熔断

限流

限流的字面意思更好理解,也不存在服务端限流,主要是对客户端限流,但是限流的算法很多,这里有同学可能要问,都是提供降级服务,为什么限流的算法很复杂,但是熔断却很少呢,至少上述章节就没有提到,这里稍作补充,熔断一般都是大事件,自动熔断是比较少的,常见的还是人工触发熔断,也就是由后台监控之后综合业务表现来发出熔断的指令,而限流一般不需要业务参与,会根据各种指标进行技术限流,你比如:API相应报文大小、单位时间内的最大/平均请求次数,后台服务根据监控主动请求限流,针对特定时间段限流、针对特定IP限流,根据用户分组(VIP/非VIP)限流等等

对于这么多的限流场景,其实更多的场景是上述限流条件的组合,所以对于API网关而言,除了要提供基本的插件式方式允许用户自定义限流条件,还要能对限流条件进行组合,排列优先级,判断互斥等。除了技术上的储备,还要对业务熟练,你比如用户分组就是一个与业务场景结合比较紧密的条件,很难从技术上进行直接定义。

Figure-2-API网关限流

整流

熔断和限流都是常用的服务降级手段,相对而言熔断比较硬一些,限流稍微软一些,但是跟我们这里提到的整流比起来,还是不够软。那么我们来说说什么是整流,就是流量整形,或者换一个更加容易理解的流量缓冲。流量整形的源出处应该是网络概念里面的术语,有流量监管和流量整形,其实这个概念在我们生活中有更形象的例子:


Figure-3-高速公路收费口

实际上API网关的整流思路与高速公路的收费口一致,就是无论你进来的流量多少,我都可以把入口流量按照一定的热度调整成后端服务可以承受的速度,这样就不会像熔断和限流那样给到用户非常硬的响应回复,而是一种排队等待。流量整形经常发生在一些特定的业务场景,你不如秒杀。

Figure-4-API网关整流

写在最后

API流控常规的操作手段都是在控制,因此被称为流控也很正常,而实际上我们更应该有一些服务思维,可以通过流量整形这样的思路,来调整流量的密度、频次等,从而能给业务带来更丰富的场景实践。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352