每一个应用都会提供很多服务。对于这些服务,可以配置限流规则以实现对服务的流控,确保服务能够稳定运行,拒绝超出服务能力的流量。
EDAS 可以从 QPS 和线程两个维度对限流规则进行配置,确保系统在面对流量高峰时以最大的支撑能力平稳运行。
[backcolor=transparent]HSF 限流:出现流量高峰时,超出流控规则所定义的流量上限时,一部分调用方将出现 BlockException 错误。根据设定的阈值,在1秒内会有与设置的阈值相同个数的服务调用成功。
[backcolor=transparent]HTTP 限流:出现流量高峰时,一部分调用方将被重定向到一个出错页面,实际访问时会跳转到淘宝首页。根据阈值设定,这里也有成功访问到服务的请求。
[backcolor=transparent]注意:限流规则仅适用于服务提供者,对于服务消费者是不能配置的。在配置之前请先确认该应用是否为服务提供者。
添加限流规则
加入限流规则代码。
登录 EDAS 控制台,在左侧导航栏中单击 [backcolor=transparent]应用管理,进入应用列表页面,选择一个已部署的服务提供者的应用,进入应用详情页面。
在应用详情页面左侧导航栏中,选择 [backcolor=transparent]限流降级 > [backcolor=transparent]限流规则。
在限流规则页面右上角单击 [backcolor=transparent]应用配置说明。
根据应用配置说明中的步骤示例,添加限流规则代码。
编译并发布应用,具体流程请参考
发布应用。
在限流规则页面右上角单击 [backcolor=transparent]添加限流规则。
在添加限流规则对话框中,设置限流规则参数。
限流规则参数说明:
- [backcolor=transparent]限流类型:分为 HSF 限流和 HTTP 限流。请根据应用的访问类型,选择具体的限流类型。
- [backcolor=transparent]需要限流的接口:列出了应用中所有的接口。请根据实际情况选择需要限流的接口。
- [backcolor=transparent]需要限流的方法:针对选择的接口,自动加载接口内所有的方法。可以根据实际情况选择某个方法进行限流,也可以选择对全部方法都进行限流。
- [backcolor=transparent]被限流的应用:此时列表中将加载除当前应用以外的所有应用,因为每一个应用都可能会访问当前应用。请根据实际情况,选择被限流的应用。
- [backcolor=transparent]限流粒度:主要分为 QPS 限流和 Thread 限流。QPS 限流表示对请求中每秒请求次数的限制;Thread 限流是对线程数的限制。一般来讲线程越大则 QPS 越大,但是一个线程的 QPS 一般都会 >1,因为一个线程会持续发请求,请求的响应时间一般就几十毫秒。
- [backcolor=transparent]限流阈值:高于阈值时将触发限流动作。
设置完成后,单击 [backcolor=transparent]确定。
管理限流规则
在 [backcolor=transparent]限流降级规则页面,在相应的限流规则右侧的操作列中,单击 [backcolor=transparent]编辑、[backcolor=transparent]停用、[backcolor=transparent]启用 或 [backcolor=transparent]删除 等按钮,可以对限流规则进行管理。