sentinel解决链路控流不生效的问题
1.在pom.xml中增加sentinel-web-servlet的依赖
<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-web-servlet</artifactId> </dependency>
2.在项目中添加一个FilterContextConfig配置类,自己构建CommonFilter实例
@Configuration public class FilterCOntextConfig { @Bean public FilterRegistrationBean sentinelFilterRegistration() { FilterRegistrationBean registrationBean = new FilterRegistrationBean(); registrationBean.setFilter(new CommonFilter()); registrationBean.addUrlPatterns("/*"); registrationBean.addInitParameter(CommonFilter.WEB_CONTEXT_UNIFY,"false"); registrationBean.setName("sentinelFilter"); registrationBean.setOrder(1); return registrationBean; }
3 重新配置链路流控规则,启动微服务,在Sentinel Dashboard中重新配置流控规则
controller层代码
@RestController public class TestController { @Autowired private ServiImpl servi; @GetMapping("/testA") public String testA() { return servi.queryGoods(); } @GetMapping("/testB") public String testB() { return servi.queryGoods(); } }
Service层代码
@Service public class ServiImpl { @SentinelResource("goods") public String queryGoods(){ return "查询商品"; } }
效果: