实现K8s集群应用的限流降级

部署在容器服务K8s集群或Serverless K8s集群中的应用支持通过重新部署来接入AHAS的试用版,并可在EDAS内嵌的监控页面中实时监控流量,全面可视化地保障您的应用可用性。本教程以在Dubbo应用中配置限流降级规则为例,介绍了如何实现微服务的限流降级。

背景信息

EDAS中默认开通AHAS试用版,仅包含入门级防护,您只能为同一个应用类设置2条相同类型的防护规则,如需设置更多规则,请前往AHAS控制台开通专业版。

如果您想废弃或修改已创建的规则,您可以在应用总览页面的左侧导航栏选择限流降级 > 规则管理,选择要删除或修改的规则页签,然后在规则列表中选择规则来进行管理。

接入AHAS

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。

  3. 应用总览页面右上角选择部署 > 部署

  4. 选择部署模式页面的其中一种部署模式区域的右上角单击开始部署

    重要

    本文以单批发布为例来说明操作步骤。

  5. 单批发布页面,修改部署参数,并展开限流降级配置

  6. 打开接入AHAS开关,然后单击确定

    重要

    如果该应用已经通过SDK方式接入了AHAS,打开此开关将会有冲突风险。

    打开接入AHAS后,该应用将自动接入AHAS。在变更流程执行完毕后,您可前往监控 > 服务/接口监控页面配置限流降级规则。

配置限流降级规则

  1. 登录EDAS控制台

  2. 在左侧导航栏,单击应用管理 > 应用列表,在顶部菜单栏选择地域并在页面上方选择所属微服务空间,在集群类型下拉列表,选择K8s集群,然后在页面单击具体的应用名称。

  3. 在左侧导航栏选择监控 > 服务/接口监控

  4. 服务/接口监控页面单击限流降级页签。

    • 如果您已开通过AHAS,或在部署的应用中已通过SDK方式接入了AHAS,那么您可以在此页面直接观测到接口的请求流量并配置限流降级规则。

    • 如果您未开通过AHAS,将可以在此页面提示中单击立即开通来跳转到应用部署页面,通过重新部署来开启AHAS试用版。具体操作,请参见接入AHAS

  5. 限流降级页签选择请求链路并观测该请求链路的QPS和RT,然后根据观测结果来配置限流降级规则。

    • 您可在请求链路的操作列单击限流,在弹出的限流规则对话框中配置限流规则。具体操作,请参见配置流控规则

    • 您可在请求链路的操作列单击降级,在弹出的降级规则对话框中配置降级规则。具体操作,请参见配置熔断规则

支持组件列表

AHAS为了简化应用的接入流程,对主流框架进行了适配。本文将列出AHAS支持的第三方组件和框架列表。

组件支持版本

从EDAS直接接入

配置SDK接入

Dubbo 2.5.x+

2.5.x和2.6.x版本已支持

全部支持

Web Servlet

已支持

支持SDK 2.x或以上版本接入

Spring Boot 1.3.x+

已支持

参见说明

Spring MVC 4.x+

已支持

参见说明

Spring Cloud Gateway 2.x

已支持

参见说明

Zuul 1.3.x

已支持

参见说明

GRPC-Java 1.13+

已支持

需另引入sentinel-grpc-adapter依赖

Jetty 8.x+

已支持

通过Servlet支持

Tomcat 7.x+

已支持

通过Servlet支持

WebLogic 10.3

已支持

通过Servlet支持

HttpClient 3.x+

不支持

不支持

HttpClient 4.x+

不支持

不支持

JDK HTTP 1.7.x+

不支持

不支持

OKHttp 2.x+

不支持

不支持

MyBatis 3.x+

不支持

支持SDK 1.4.1或以上版本接入

MySQL JDBC 5.0.x+

已支持

不支持

Oracle JDBC 12.x

已支持

不支持

PostgreSql JDBC 9.4+

不支持

不支持

SQLServer JDBC 6.4+

不支持

不支持

Redis Client(Jedis)

已支持

不支持

MemCached 2.8+

已支持

不支持

MongoDB 3.7+

不支持

不支持

RocketMQ(callback模式)4.x

已支持

需手动埋点

RabbitMQ 3.7+

已支持

需手动埋点

Feign 10.x+

已支持

需引入spring-cloud-starter-alibaba-sentinel

说明
  • Spring MVC、Spring Boot和Spring Cloud Web应用需要引入ahas-sentinel-client并进行相应配置即可使用(参考Web Servlet支持的版本);若需要通过Spring properties配置启动参数,则需要单独引入spring-boot-starter-ahas-sentinel-client依赖。

  • Spring Cloud Gateway网关需要引入spring-cloud-gateway-starter-ahas-sentinel依赖;Zuul 1.x网关需要引入spring-cloud-zuul-starter-ahas-sentinel依赖,无需引入其它依赖。

  • Dubbo 2.7.x以上版本暂不支持在EDAS控制台部署接入AHAS,您可通过在应用中添加防护依赖的方式来接入AHAS。具体操作,请参见接入Dubbo应用