隔离规则通过控制接口或依赖的并发线程数,来保证系统的稳定性。通常适用于应用内部或下游依赖出现不稳定的场景,例如慢SQL、下游应用响应时间变长等。本文介绍如何配置和管理隔离规则。
前提条件
开通企业版。相关内容,请参见微服务治理升级为企业版。
MSE治理中心已接入微服务应用,相关内容,请参见:
背景信息
当强依赖的方法或接口不稳定的时候,可以通过配置并发线程数来限制不稳定的强依赖并发数,起到隔离异常的效果。若运行该请求的响应时间变长,会导致线程的并发数变大。当并发数超过阈值以后,AHAS将拒绝多余的请求,直到堆积的任务完成,并发线程数变少。达到将异常隔离,减小不稳定性的效果。
如何设定并发线程数阈值,可参见以下内容:
并发线程数 = 期望QPS*响应时间+冗余量。
例如预期的SQL执行时间为20毫秒,预期该请求每秒有20个,并发最大时候是6个,建议并发线程数按照以下逻辑设置:Max(20/1000*20,6)= 6 ,再加上冗余量2 ,则建议并发数阈值设置为8。
设置好后,当这个SQL发生死锁或者有性能问题,SQL运行特别慢成为慢SQL时,即使请求不断的进来,也仅仅会占用8个线程,不会因为持续进来的请求(请求也无法在短时间内退出),从而耗光进程的活跃线程。
当这个SQL恢复正常后,并发数会迅速减少。当并发数减少至低于预设的阈值时,系统就不会拒绝请求,应用的处理能力也快速的恢复。通过这样的方式,起到了根据响应时间自动调节的效果,隔离了不稳定的应用。
隔离规则配置通常用于强依赖隔离场景,详情请参见强依赖隔离。
功能入口
登录MSE治理中心控制台,并在顶部菜单栏选择地域。
在左侧导航栏,选择治理中心 > 应用治理。
在应用列表页面,单击目标应用的资源卡片。
进入应用之后,选择以下任意一种方法新建隔离规则:
在左侧导航栏,单击应用概览,然后单击通过QPS TOP页签,单击对应接口的操作列下的隔离。
在左侧导航栏,单击接口详情。单击并发隔离页签,然后单击新增隔离规则。
在左侧导航栏,单击流量治理。单击流量防护页签,再单击并发隔离页签,然后单击新增隔离规则。
在左侧导航栏,单击数据库治理,单击SQL 详情页签,单击接口概览区域处的新增防护规则。在新增规则对话框中,单击并发隔离。
在新增隔离防护规则或新增规则对话框中配置规则信息,然后单击新建。
说明参数说明具体详见更多信息。
常用示例:保障自身资源充足
当运行该请求的响应时间变长,会导致线程的并发数变大。当并发数超过阈值以后,AHAS将拒绝多余的请求,直到堆积的任务完成,并发线程数变少。达到将异常隔离,减小不稳定性的效果。例如某个SQL执行时间为20毫秒,预期该请求每秒有20个。
在新增隔离防护规则或新增规则对话框中配置以下规则信息:
填写接口名称。
并发数阈值为10。
设置完成后,当这个SQL发生死锁或者存在性能问题时,该SQL运行变慢,成为慢SQL,此时即使请求不断进来,也仅仅会占用10个线程,不会因为持续进来的请求(请求也无法在短时间内退出),从而耗光进程的活跃线程。当这个SQL恢复正常后,并发数会迅速减少。当并发数减少至低于预设的阈值时,系统就不会拒绝请求,应用的处理能力也快速的恢复。通过这样的方式,起到了根据响应时间自动调节的效果,隔离了不稳定的应用。
更多信息
新增隔离防护规则或新增规则对话框配置项解释如下:
配置项 | 描述 |
接口名称 | 待隔离的资源名称。 |
并发数阈值 | 资源的并发线程数(即该资源正在执行的线程数)阈值。 |