EDAS 限流降级|学习笔记

简介: 快速学习 EDAS 限流降级

开发者学堂课程【企业级分布式应用服务 EDAS 使用攻略:课时名称】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/359/detail/4204


EDAS 限流降级


内容介绍:

一、限流规则

二、降级规则


限流降级是应用管理功能其一,其主要作用在于保证应用的可用性,为达到这一目的,其包括两部分,即限流规则与降级规则。两个规则的界面都包含一个“应用配置说明”,要先对应用进行修改,才能管理使用该规则。两个规则的应用配置相同,

如下:

(1)引入 pom 包,在 pom 文件中引入两个依赖。

代码如下:

cglib

cglib-nodep

2.2(或者更新)

org.springframework

org.springframework.aop

2.5.6(或者更新)

(2)添加接入方式

①为 hsf 限流降级在配置文件中加入以下 bean。代码如下:

class=org.springframework.beans.factory.config.CustomEditorConfigurer">

entrance.HSFSpringProviderBeanRegistrars">

p.sentinel.entrypoint.proxy.TraceMethodInterceptor"/>

com.taobao.hsf.app.springConsumerBean

PeHolder">    

traceMethodInterceptor

②为 web 限流,在应用的 web.xml 中添加以下代码(过滤器):

CommonFilter

com.taobao.csp.sentinel.entrypoint.entrace.

CommonFilter

CommonFilter

*.jhtml

CommonFilter

*.jhtml

这些对应用的修改本质上起到对服务的拦截作用,以限流,否则添加的限流规则不起作用。


一、限流规则

1.按照“应用配置说明”修改应用

2.添加限流规则

点击“添加限流规则”,“限流类型”分为“ HSF 限流”与“ HDB 限流”,前者是针对HSF服务进行限流,进而选择“需要限流的借口”“需要限流的方法”(可以是某一方法或全部方法)“被限流的应用”,(可以是某一应用或全部应用)“限流粒度”( QPS 限流或 Thread 限流,根据实际情况选用)。如选用“Thread 限流”,设置“限流阈值”为20,(表示任何应用调用该应用的该服务时,线程一旦超过20,即会限制该应用)点击“确定”,即可添加该限流规则。添加完成后,在添加“应用配置”后重启,该限流规则即可生效。

该规则中选用“ Thread 限流设置”,并设置“限流阈值”为20,表示任何应用调用该应用的该服务时,线程一旦超过20,即会限制该应用,可以有效防止该应用被其上游应用产生不利影响。若不进行限流,该应用可能被多个调用应用拖垮。也就是在保证该应用自身正常运行的情况下支持其他应用的调用。


二、降级规则

1.按照“应用配置说明”修改应用

2.添加降级规则

点击“添加限流规则”,可以选择“需要降级的借口”(服务提供者没有,要针对于服务的调用者)“需要降级的方法”(可以是某一方法或全部方法),并设置“RT阈值(毫秒)”,如默认值“2000”,即2000毫秒后降级,还可以设置“时间窗口(秒)”,如默认值“10”。点击“确定”添加该降级规则。

该降级规则的含义说明:

若应用1 调用了应用2(也可以是多个应用)的服务,若应用2出错(网络速度、应用进程消失等原因)无法再提供服务,应用1在调用10秒后仍未返回,也会出错。而为了保持应用1本身的的可用性,调用10秒后未返回,便直接降级放弃调用。

总结:

限流或降级都是为了确保应用本身的可用性,两者的区别在于前者是针对于调用方的规则限制(即谁调用我,我就对谁采取限制),后者是针对于被调用方的规则限制(即我调用谁,我就对谁采取限制)。其中,对于方法的选择以及数据的设置依照应用的实际需求来定,并通过多次调试优化最终确定。

相关实践学习
使用DAS实现数据库自动SQL优化
本场景介绍如何使用DAS实现数据库自动SQL优化。
SpringMVC框架入门
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts2等。 相关的阿里云产品企业级分布式应用服务 EDAS:企业级分布式应用服务 EDAS(Enterprise Distributed Application Service)是一个应用托管和微服务管理的 PaaS 平台,提供应用开发、部署、监控、运维等全栈式解决方案,同时支持 Spring Cloud、Apache Dubbo(以下简称 Dubbo )等微服务运行环境,助力您的各类应用轻松上云。产品详情: https://www.aliyun.com/product/edas 
相关文章
|
监控 应用服务中间件 开发者
EDAS 通知报警|学习笔记
快速学习 EDAS 通知报警EDAS通知报警功能在应用管理功能中,主要包含三个功能,即报警规则的设定、报警联系人的维护以及报警记录。
210 0
|
弹性计算 监控 容灾
EDAS 介绍|学习笔记
快速学习 EDAS 介绍
1236 0
EDAS 介绍|学习笔记
|
应用服务中间件 开发者
EDAS 应用创建、启动和停止|学习笔记
快速学习 EDAS 应用创建、启动和停止
348 0
EDAS 应用创建、启动和停止|学习笔记
|
应用服务中间件 开发者
EDAS 应用部署、启动和停止|学习笔记
快速学习 EDAS 应用部署、启动和停止
645 0
EDAS 应用部署、启动和停止|学习笔记
|
应用服务中间件 Shell 数据安全/隐私保护
EDAS Agent 安装(批量)|学习笔记
快速学习 EDAS Agent 安装(批量)
188 0
EDAS Agent 安装(批量)|学习笔记
|
弹性计算 应用服务中间件 Shell
EDAS Agent 安装(单台)|学习笔记
快速学习 EDAS Agent 安装(单台)
176 0
EDAS Agent 安装(单台)|学习笔记
|
弹性计算 负载均衡 应用服务中间件
EDAS 资源管理介绍|学习笔记
快速学习 EDAS 资源管理介绍
233 0
|
弹性计算 监控 负载均衡
EDAS 应用监控|学习笔记
快速学习 EDAS 应用监控,该功能主要包括三个功能,即监控大盘、基础监控以及服务监控。
252 0
|
应用服务中间件 开发者
EDAS 应用回滚、扩容和删除|学习笔记
快速学习 EDAS 应用回滚、扩容和删除
275 0
|
弹性计算 Java 应用服务中间件
EDAS 容器诊室|学习笔记
快速学习 EDAS 容器诊室
115 0

热门文章

最新文章