当前位置:   article > 正文

springboot集成Sentinel_springboot整合sentinel

springboot整合sentinel

1、添加依赖

  • 该版本匹配springboot 2.3.x和2.4.x
  1. <dependency>
  2. <groupId>com.alibaba.cloud</groupId>
  3. <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
  4. <version>2021.1</version>
  5. </dependency>

2、SentinelConfig配置限流规则

  1. @Configuration
  2. public class SentinelConfig {
  3. @Bean
  4. public SentinelResourceAspect sentinelResourceAspect() {
  5. return new SentinelResourceAspect();
  6. }
  7. @PostConstruct
  8. private void initRules() {
  9. //=============================规则1=========================
  10. FlowRule rule1 = new FlowRule();
  11. rule1.setResource("rule1");//规则名称
  12. rule1.setGrade(RuleConstant.FLOW_GRADE_QPS);//如果设置0则按照线程数限流,如果设置1则按照QPS(每秒查询率)限流
  13. rule1.setCount(100); // 每秒调用最大次数为 100 次
  14. rule1.setControlBehavior(0);//0快速失败,1预警,2排队等候
  15. rule1.setMaxQueueingTimeMs(1000);//排队超时阈值
  16. //=============================规则2=========================
  17. FlowRule rule2 = new FlowRule();
  18. rule2.setResource("rule2");
  19. rule2.setGrade(RuleConstant.FLOW_GRADE_QPS);
  20. rule2.setCount(10); // 每秒调用最大次数为 10 次
  21. List<FlowRule> rules = new ArrayList<>();
  22. rules.add(rule1);
  23. rules.add(rule2);
  24. FlowRuleManager.loadRules(rules);
  25. }
  26. }

3、API限流

  1. @SentinelResource(value = "rule1", blockHandler = "poll", blockHandlerClass = SentinelHandler.class)
  2. @ApiOperation("批量拉取消息")
  3. @PostMapping("/poll")
  4. public BaseResult poll(@RequestBody @Valid PollMessageRequest request){
  5. return BaseResult.success(kafkaService.poll(request));
  6. }

4、配置handler

  • handler里的方法必须用public static修饰
  • handler里的方法的返回值类型必须和原方法保持一致,参数是在原参数后边加一个BlockException
  1. public class SentinelHandler {
  2. public static BaseResult poll(PollMessageRequest request, BlockException e) {
  3. throw new BusinessException("请勿频繁操作");
  4. }
  5. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/运维做开发/article/detail/741067
推荐阅读
相关标签
  

闽ICP备14008679号