简介:应用程序高可用的服务AHA(应用程序高可用性服务)是由高度可用的系统设置的云产品多年来在阿里巴巴内部设置。将流量和容错的容忍度作为起点,从交通控制,不稳定的呼叫,保险丝降级,热点流量流动,系统自适应保护,集群流量控制和其他维度,以帮助确保服务的稳定性,同时提供次要流量监控和分析功能。
作者:Suhe
微服务的稳定性一直是开发人员非常关注的话题。随着业务从单个结构变为分布式体系结构和部署方法的变化,服务之间的依赖关系变得越来越复杂,业务系统已经越来越复杂该系统的适应性保护,群集流控制和其他维度,以帮助确保服务的稳定性,同时提供次要流量监控和分析功能。Ahas不仅在TAAOBAO领域具有广泛的应用和Tmall,但在互联网金融,在线教育,游戏,实时广播行业以及其他大型政治和中央企业行业方面也有很多实践。
流量控制是确保微服务稳定性的最常见,最直接的控制方法。每个系统和服务具有可以携带的容量的上限。流量控制的思考非常简单。当特定界面的QPS请求超过一定的上限时,它拒绝过多的请求,以防止系统被突然流量击败。市场上最常见的方案是单个机动尺寸的流量控制。例如,通过PTS性能测试估计某个接口的容量估计为100 QP,并且该服务具有10个实例,然后配置了单个机动流量控制10 QPS。但是由于流量的不确定性,多次分布,在单位尺寸的流量控制中,结果有些差。
方案:服务A需要经常调用服务B查询接口,但是服务A和B的能力具有不同的容量。服务B提供了服务A,具有600个QPS查询功能,并通过流控制和其他方式控制。
疼痛点:如果单个机器流控制的策略配置,由于呼叫逻辑和负载平衡策略,呼叫B以达到每个实例的流量分布非常不平衡。尚未达到整体限制,导致SLA的限制未能达到标准。在调用依赖的服务或组件(例如数据库访问)时,通常会发生这种不平衡的情况,这也是群集流量控制的典型场景:准确地控制微服务群集到下游服务(或数据库,或缓存)致电总金额。
方案:NGINX/INGRESS网关的入口流量控制,API网关(Spring Cloud Gateway,Zuul),希望准确地控制特定或一组API的流动以进行早期保护,多余的流量将无法到达后端系统。
疼痛点:如果一方面没有感知单机器尺寸的配置,则机器的数量会发生变化,并且网关流量不均可能会导致电流极限;从门户入口的角度来看,配置的总体阈值是最自然的手段。
AHAS群集流量控制可以准确地控制整个群集中服务接口的真实时间调用的总量,这可以解决由于流量不均而导致的流量不良的问题,机器数量频繁变化,平均值太小失速阈值,导致流量极限效应。合并的 - 机器流控制口袋,以更好地发挥保护的效果。
对于上述场景,通过AHAS群集流控制,无论是Dubbo服务呼叫,Web API访问还是自定义的业务逻辑,所有这些都支持准确的控制呼叫的总量,以及无关的呼叫逻辑,流程分配条件和实例分发。不仅可以支持成千上万的QPS控制,而且还可以在几分钟和数小时的业务维度下准确控制小型流量。用户可以自定义保护性触发器后的行为(例如返回的自定义内容和对象)。
AHAS群集保护具有以下优势:
让我们介绍如何快速连接到AHA,以播放组流量控制功能,以确保服务稳定性。
在第一步中,我们将服务或网关连接到AHAS流量保护。Ahas提供了各种快速,方便的非不创访问方法:
AHAS流量保护支持多语言本机访问Java/GO/C ++/PHP,以及NGINX/INGRESS网关访问和网格访问;Java应用程序支持全面的20+微服务框架/组件:
访问AHAS成功后,只要触发服务呼叫/接口访问,您就可以在AHAS控制台上看到您的服务,并且您可以在监视页面上看到您的界面:
第二步,我们使用左菜单的“集群流控制群集配置”页面来打开群集流控制功能。我们可以打开“试用”群集以进行测试应用程序。不同的簇规格可以带有不同的QPS幅度:
在第三步中,我们在实际 - 时间监视页面上找到一个接口,然后在右上角单击“+”以增加流量控制规则。在下面的示例中,我们为 /dosomething配置了群集流量控制规则。接口的总数不超过每秒200次。规则是“打开”,代表新的后时间效应。
单击下一步,我们还可以在选定的Web/RPC调用保护规则的配置之后调用处理逻辑,例如自定义返回值。完成最终配置后,我们单击新按钮,此规则将生效至每个节点。
配置完成后,我们可以向应用程序集群中的不同机器启动一定数量的接口请求。可以发现,在每秒200多个请求之后,我们将自动返回规则中的预设返回行为;在同一时间也可以看出,多余的流量被拒绝,并且每秒通过接口的总级别在200 QPS上稳定:
通过一些简单的配置,我们可以快速体验AHAS群集流量控制,从而为业务流量带来“平滑”的保护功能;同时,AHAS最近启动了NGINX/INGRESS网关入口流量保护,Web请求参数FlowCore功能,例如Control,欢迎阅读原始文本,然后转到AHAS控制台进行快速体验。