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 "查询商品";
    }
}

 

效果:

 

posted @ 2022-07-31 19:10  Cactus丶  阅读(1340)  评论(0编辑  收藏  举报