服务限流的使用,主要分为下述几个步骤:
引入依赖和本地配置
引入依赖
在SOFABoot Web 工程 endpoint
模块下的 pom.xml
文件中,引入 DRM 和 guardian 依赖,示例如下:
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>ddcs-enterprise-sofa-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>guardian-sofa-boot-starter</artifactId>
</dependency>
说明
使用
rest-enterprise-sofa-boot-starter
和rpc-enterprise-sofa-boot-starter
时,都需要引入上述依赖。
引入
rpc-enterprise-sofa-boot-starter
时,如果需要使用限流功能,还需要引入下述依赖,否则限流不起作用。定义接口的时候还需要自定义一个异常,一个异常处理器,用于限流成功后抛出异常,并且把异常处理结果返回给前端。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>com.alipay.sofa</groupId>
<artifactId>tracer-enterprise-sofa-boot-starter</artifactId>
</dependency>
本地配置
引入依赖
guardian-sofa-boot-starter
:应用已经可以对 SOFARPC 接口和 Spring MVC 请求进行限流。配置 AOP 拦截器:如果需要对内部 Spring Bean 定义的方法进行限流,则需要在 Spring Bean 配置文件中添加配置 AOP 拦截器。示例如下:
<!-- 引入 guardian 中定义的 bean --> <import resource="classpath:META-INF/spring/guardian-sofalite.xml"/> <!-- 配置 AOP 拦截器 --> <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="interceptorNames"> <list> <value>guardianExtendInterceptor</value> </list> </property> <property name="beanNames"> <list> <!-- 配置需要被拦截的 bean --> <value>*DAO</value> </list> </property> <!-- 如要使用 CGLIB 代理,取消下面这行的注释 --> <!-- <property name="optimize" value="true" /> --> </bean>
云端发布
请参考下述信息,完成应用的云端发布:
控制台限流操作
应用部署完成后,需前往 SOFAStack 控制台 > 中间件 > 微服务平台 > 微服务 > 服务治理 > 服务限流 进行限流任务的创建与配置,详情参见 新增限流规则。
在文档使用中是否遇到以下问题
更多建议
匿名提交