本篇文章是笔者对流量治理治理思路的总结,在这里笔者把它们称为流量治理的“三板斧”,这里笔者只是阐述下个大概,算是先给它们做个介绍,后续会详细讲解每一部分。
对于流量治理来说,笔者觉得一定要从三个方面来着手,他们分别是:“看得见”,“摸得着”,“管得住”。
一、看得见
“看得见”,指的是流量治理的可观察性,它们需要能够被“看见”才行,当然这里的“看见”,一方面指的是监控指标能够可视化出来,让人能看到它是什么样子,有什么规律,只有能看见,用户才能知道现状是什么样子的,才能发现流量的热点,瓶颈,才能更好的进行治理,当然用户也可以看到流量的价值,进而进行数据挖掘,在运营面做写文章进而产生价值。
另一方面指的是产品自己能够“看得见”,这不依赖于维护和治理流量的人的层面,而是产品能够觉察到不正常,然后快速的做出反应,让流量在出现异常的时候,产品能够hold住,不至于整个崩掉,这里主要针对的是哪些需要瞬时反应的场景,在人操作来不及的时候进行看见,进而配合开发一些产品快速响应的功能,进行组合使用。
二、摸得着
“摸得着”,指的是治理的人工交互能力,特别在流量出现异常或者不可控的时候,我们能够有办法与产品进行交互。而产品也具有这种交互能力,可以按照用户的意愿采取对应的措施,进行流量的治理。笔者把这种交互能力归类于“摸得着”,当然这种“摸得着”的能力,越快速,越准确,越智能,我们流量治理的能力就越高。
对于这种交互能力,我们可以采用同步的方式,例如:开发降级功能、排障功能或者定制功能的api,让用户直接通过调用的方式进行操控。除此之外,我们还可以采用异步的方式进行交互,例如:采用云原生的方式,自定义一些cr,让这些cr里面的配置管理这部分交互功能,对应的产品采用watch的方式,去实时watch这些cr的变动,然后执行对应的功能。
三、管得住
“管得住”,指的是流量治理的实际规则,这里针对两种类型的流量,一种是正常流量,一种是异常流量。
对于正常流量,我们需要有规则能够保证流量按照规定好的路由配置去流转,就算在服务出现异常的时候,这些流量也能够自动调节成正确的链路,让流量正常就转下去。通常的玩法是配合“看得见”实时监控服务的异常,例如:服务里面的单个节点挂掉的场景,产品能够同步去拉取注册中心里面的节点状态,并实时的去更新路由规则和负载均衡的节点信息,让异常节点不在接收到流量。
对于异常的流量,例如流量瞬间飙升,波动很大,我们需要有能力去控制住这个流量,让它们不至于把服务打挂,而是还能够在一个合适的水位去流转,像平时我们了解的削峰,优先级策略,丢包逻辑等等。