本文从本地工程开发到应用的云端发布,再到配置限流,介绍服务限流的整理过程。
操作步骤
本地工程开发。
操作步骤请参见 本地实现 SOFARPC 服务。
引入依赖和本地配置。
引入依赖
在 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 请求进行限流。如果您还需要对内部 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 控制台配置限流规则。
配置步骤,请参见 控制台配置限流规则。
文档内容是否对您有帮助?