网站活动策划怎么做,深圳宝安区律师事务所,公众号可以做分类信息网站吗,网站需要做实名认证如何做简介#xff1a;应用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴内部多年高可用体系沉淀下来的云产品#xff0c;以流量与容错为切入点#xff0c;从流量控制、不稳定调用隔离、熔断降级、热点流量防护、系统自适应保护、集群流控等多个维度来帮…简介应用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴内部多年高可用体系沉淀下来的云产品以流量与容错为切入点从流量控制、不稳定调用隔离、熔断降级、热点流量防护、系统自适应保护、集群流控等多个维度来帮助保障服务的稳定性同时提供秒级的流量监控分析功能。
作者宿何
微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化服务之间的依赖关系变得越来越复杂业务系统也面临着巨大的高可用挑战。应用高可用服务 AHAS (Application High Availability Service) 是经阿里巴巴内部多年高可用体系沉淀下来的云产品以流量与容错为切入点从流量控制、不稳定调用隔离、熔断降级、热点流量防护、系统自适应保护、集群流控等多个维度来帮助保障服务的稳定性同时提供秒级的流量监控分析功能。AHAS 不仅在阿里内部淘宝、天猫等电商领域有着广泛的应用在互联网金融、在线教育、游戏、直播行业和其他大型政央企行业也有着大量的实践。 流控是保障微服务稳定性最常用也是最直接的一种控制手段。每个系统、服务都有其能承载的容量上限流控的思路非常简单当某个接口的请求 QPS 超出一定的上限后拒绝多余的请求防止系统被突发的流量打垮。市面上最常见的方案是单机维度的流控比如通过 PTS 性能测试预估某个接口的容量上限是 100 QPS服务有 10 个实例则配置单机流控 10 QPS。但很多时候由于流量分布的不确定性单机维度的流量控制存在一些效果不佳的情况。
典型场景 1:精确控制对下游的调用总量 场景服务 A 需要频繁调用服务 B 的查询接口但服务 A 和 B 的容量存在差异服务 B 约定最多给服务 A 提供总共 600 QPS 的查询能力通过流控等手段进行控制。
痛点若按照单机流控的策略配置由于调用逻辑、负载均衡策略等原因A 调用 B 到达每个实例的流量分布可能非常不均部分流量较大的服务 B 实例触发单机流控但总体限制量尚未达到导致 SLA 未达标。这种不均的情况经常会发生在调用某个依赖服务或组件如数据库访问的时候这也是集群流控的一个典型场景精确控制微服务集群对下游服务或数据库、缓存的调用总量。
典型场景 2业务链路入口进行请求总量控制 场景在 Nginx/Ingress 网关、API Gateway (Spring Cloud Gateway, Zuul) 进行入口流量控制希望精确控制某个或某组 API 的流量来起到提前保护作用多余流量不会打到后端系统。
痛点如果按照单机维度配置一方面不好感知网关机器数变化另一方面网关流量不均可能导致限流效果不佳而且从网关入口角度来讲配置总体阈值是最自然的手段。
AHAS 集群流控
AHAS 集群流控可以精确地控制某个服务接口在整个集群的实时调用总量可以解决单机流控因流量不均匀、机器数频繁变动、均摊阈值太小导致限流效果不佳的问题结合单机流控兜底更好地发挥流量防护的效果。
对于上面的场景通过 AHAS 集群流控无论是 Dubbo 服务调用、Web API 访问还是自定义的业务逻辑均支持精确控制调用总量而无关调用逻辑、流量分布情况、实例分布。既可以支撑数十万 QPS 大流量控制也支持分钟小时级业务维度小流量精确控制。防护触发后的行为可由用户自定义如返回自定义的内容、对象。
AHAS 集群防护具有以下几大优势
场景丰富全面覆盖从网关/Mesh 入口流量精确防护、Web/RPC 服务/SQL 调用精确流控到分钟小时级业务维度流量控制的场景支持数十万 QPS 量级低使用成本无需特殊接入方式开箱即用快速配置全自动管控与运维自动化管控与分配 token server 资源自动化运维能力保障可用性用户无需关注服务端资源准备与分配只需关注规则配置与业务流程低性能损耗性能模式下对业务链路完全无时延增加精确模式对业务链路的 RT 损耗控制在 3ms 之内用户可放心使用配套的可观测能力实时了解接口稳定性与规则生效情况。
下面我们就来用一个示例来介绍一下如何快速将应用接入 AHAS 来玩转集群流控能力保障服务稳定性。
快速玩转 AHAS 集群流控
第一步我们将服务或网关接入 AHAS 流量防护。AHAS 提供多种快速便捷的无侵入接入手段 AHAS 流量防护支持 Java/Go/C/PHP 等多语言原生接入以及 Nginx/Ingress 网关接入和 Mesh 接入Java 应用支持全方位的 20 种微服务框架/组件
Web 服务端Spring Web/Spring Boot/Spring Cloud/Tomcat/Jetty/UndertowWeb clientOkHttp/Apache HttpClientRPCDubbo/Feign/gRPCDAO/缓存MyBatis/Spring Data JPA/Memcached/Jedis clientMQ consumerRocketMQ client/Kafka client/RocketMQ clientAPI GatewaySpring Cloud Gateway/Zuul 1.xReactor 框架
接入 AHAS 成功后只要触发服务调用/接口访问即可在 AHAS 控制台看到自己的服务并可以在监控页面看到自己的接口 第二步我们在应用左侧菜单的“集群流控-集群配置”页面开启集群流控功能。测试应用我们可以开启“试用”集群不同的集群规格可以承载不同的 QPS 量级 第三步我们在实时监控页面找一个接口点击右上角的“”号新增流控规则。以下示例中我们对 /doSomething 这个接口配置集群流控规则这个接口总的访问量每秒钟不超过 200 次。规则状态为“开启”代表新增后实时生效。 点击下一步我们还可以给选择的 Web/RPC 调用配置防护规则触发后的处理逻辑如自定义返回值。最终配置完成后我们点击新增按钮这条规则就会生效到每个节点。
配置完毕后我们可以向应用集群中不同机器发起一定数量的该接口请求可以发现每秒钟超过 200 个请求后会自动返回我们在规则中预设好的返回行为同时控制台实时监控页面也可以看到多余的流量被拒绝接口每秒钟通过的总量级平稳在 200 QPS 通过几步简单的配置我们就可以快速体验 AHAS 集群流控给业务流量带来“如丝般顺滑”的保护能力同时最近 AHAS 还新上线 Nginx/Ingress 网关入口流量防护、Web 请求参数流控 等核心功能欢迎大家点击阅读原文在前往 AHAS 控制台进行快速体验。
原文链接 本文为阿里云原创内容未经允许不得转载。