通过在业务逻辑上添加依赖注解的方式将Spring应用接入应用防护,可以对调用方法进行注解埋点,减小对代码的入侵。本文将介绍如何将Spring应用接入应用防护。
操作步骤
- 登录AHAS控制台。
- 在AHAS控制台左上角,选择应用接入的地域。
- 在控制台左侧导航栏中选择 。
在应用防护页面右上角单击新应用接入,然后在JAVA语言页签,单击SDK接入,然后单击Spring应用接入。
通过以下任意一种方式,为应用添加依赖。
方式一:在Pom文件中添加依赖。
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>ahas-sentinel-client</artifactId> <version>x.y.x</version> </dependency>
在Spring应用接入页面第一步:添加Pom依赖中查看Pom依赖最新版本,将
x.y.z
替换为新版本的版本号。方式二:添加JAR包依赖。
在Spring应用接入页面单击请点击此链接下载下载压缩包,并将压缩包中的所有JAR包解压后放置在classpath目录下。
在应用工程中添加埋点。
添加HTTP埋点。
@Configuration public class SentinelWebConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new SentinelWebInterceptor()); } }
普通接口埋点。
将SentinelResourceAspect注册为一个Spring Bean。
@Configuration public class SentinelAspectConfiguration { @Bean public SentinelResourceAspect sentinelResourceAspect() { return new SentinelResourceAspect(); } }
在业务方法上添加@SentinelResource注解。
// 原本的业务方法 @SentinelResource(value = "getUserById") public User getUserById(String id) { return new User(id); }
通过以下任意一种方式,配置应用的启动参数。
类别
参数示例
非公网
-Dproject.name=AppName -Dahas.namespace=default -Dahas.regionId=<RegionId>
说明将AppName替换为自定义的应用名称。
将<RegionId>替换应用所在地域,地域与RegionId对应表请参见下文地域与RegionId对应表。
公网
-Dproject.name=AppName -Dahas.license=<license> -Dahas.namespace=default -Dahas.regionId=cn-public
说明将AppName替换为自定义的应用名称,将<license>替换为真实值。
若在公网地域,需要查看License信息。请在第三步:配置启动参数区域查看(非公网地域不需要),具体请参见查看License。
重启应用。
可选:使用注解方式配置应用触发限流、降级或系统保护规则时的处理逻辑。 请参见注解方式。
说明若未执行此步骤,当应用触发流控降级规则时,默认抛出
BlockException
异常类的子类(触发流控规则,则抛出流控异常FlowException
;触发降级规则,则抛出降级异常DegradeException
)。
结果验证
登录AHAS控制台,在左侧导航栏选择 ,若在应用防护页面出现该应用的资源卡片且有数据上报,则说明接入成功。
地域与RegionId对应表
地域 | RegionId |
公网 | cn-public |
华东1(杭州) | cn-hangzhou |
华东2(上海) | cn-shanghai |
华北2(北京) | cn-beijing |
华北3(张家口) | cn-zhangjiakou |
华南1(深圳) | cn-shenzhen |
新加坡 | ap-southeast-1 |
德国(法兰克福) | eu-central-1 |