配置隔离规则

隔离规则通过控制接口或依赖的并发线程数,来保证系统的稳定性。通常适用于应用内部或下游依赖出现不稳定的场景,例如慢SQL、下游应用响应时间变长等。本文介绍如何配置和管理隔离规则。

前提条件

背景信息

当强依赖的方法或接口不稳定的时候,可以通过配置并发线程数来限制不稳定的强依赖并发数,起到隔离异常的效果。若运行该请求的响应时间变长,会导致线程的并发数变大。当并发数超过阈值以后,AHAS将拒绝多余的请求,直到堆积的任务完成,并发线程数变少。达到将异常隔离,减小不稳定性的效果。

如何设定并发线程数阈值,可参见以下内容:

  • 并发线程数 = 期望QPS*响应时间+冗余量。

  • 例如预期的SQL执行时间为20毫秒,预期该请求每秒有20个,并发最大时候是6个,建议并发线程数按照以下逻辑设置:Max(20/1000*20,6)= 6 ,再加上冗余量2 ,则建议并发数阈值设置为8。

  • 设置好后,当这个SQL发生死锁或者有性能问题,SQL运行特别慢成为慢SQL时,即使请求不断的进来,也仅仅会占用8个线程,不会因为持续进来的请求(请求也无法在短时间内退出),从而耗光进程的活跃线程。

  • 当这个SQL恢复正常后,并发数会迅速减少。当并发数减少至低于预设的阈值时,系统就不会拒绝请求,应用的处理能力也快速的恢复。通过这样的方式,起到了根据响应时间自动调节的效果,隔离了不稳定的应用。

隔离规则配置通常用于强依赖隔离场景,详情请参见强依赖隔离

功能入口

  1. 登录MSE治理中心控制台,并在顶部菜单栏选择地域。
  2. 在左侧导航栏,选择治理中心 > 应用治理
  3. 在右侧的应用卡片里选择对应的应用,单击卡片进入应用。

  4. 进入应用之后,选择以下任意一种方法新建隔离规则:

    • 在左侧导航栏,单击应用概览,然后单击QPS TOP表格的操作列中的流控或者隔离

    • 在左侧导航栏,单击接口详情,在接口概览页面单击资源卡片右上角的新增防护规则防护规则管理,然后在新增规则或者管理规则对话框中,单击隔离规则

    • 在左侧导航栏,单击流量治理,在流量防护流控规则页,单击新增流控规则按钮。

    • 在左侧导航栏,单击数据库治理,单击SQL详情页签,单击资源卡片右上角新增防护规则防护规则管理,在管理规则或者管理规则页面,单击隔离规则页签,在页面左上角,单击新增隔离规则

  5. 新建隔离规则对话框中配置规则信息 :

    1. 选择防护场景页面,修改接口名称,然后单击下一步

    2. 配置防护规则页面,配置防护规则,然后单击下一步

      说明

      若需对隔离防护规则进行编辑,则直接进入配置防护规则。

    3. 配置防护行为页面,然后单击下一步并单击新增

    4. 隔离规则页面,选择对应的规则并在状态栏下单击开启

    5. 温馨提示页面,单击确定,开启已配置的防护规则。

说明

参数说明具体详见更多信息

常用示例:保障自身资源充足

当运行该请求的响应时间变长,会导致线程的并发数变大。当并发数超过阈值以后,AHAS将拒绝多余的请求,直到堆积的任务完成,并发线程数变少。达到将异常隔离,减小不稳定性的效果。例如某个SQL执行时间为20毫秒,预期该请求每秒有20个。

新增隔离防护规则对话框中配置以下规则信息:

  • 填写接口名称

  • 并发数阈值为10。

设置完成后,当这个SQL发生死锁或者存在性能问题时,该SQL运行变慢,成为慢SQL,此时即使请求不断进来,也仅仅会占用10个线程,不会因为持续进来的请求(请求也无法在短时间内退出),从而耗光进程的活跃线程。当这个SQL恢复正常后,并发数会迅速减少。当并发数减少至低于预设的阈值时,系统就不会拒绝请求,应用的处理能力也快速的恢复。通过这样的方式,起到了根据响应时间自动调节的效果,隔离了不稳定的应用。

更多信息

新增隔离防护规则页面配置项解释如下:

配置项

描述

接口名称

待隔离的资源名称。

并发数阈值

资源的并发线程数(即该资源正在执行的线程数)阈值。

阿里云首页 微服务引擎 相关技术圈