• Sentinel 流控注解使用


    大概原理:通过反射解析注解 @SentinelResource信息完成调用,处理方法,类似AOP编程

    处理方法的返回类型要保持一致,参数和顺序保持一致, 可以在参数列表最后加

    com.alibaba.csp.sentinel.slots.block.BlockException;

    1. /**
    2. * 如果不在同类,需要指明类名和方法名并且方法必须是静态方法
    3. */
    4. @GetMapping("/add2")
    5. @SentinelResource(value = "add", blockHandlerClass = {FlowContrlHandler.class}, blockHandler = "flow")
    6. public String add2() {
    7. System.out.println("下单成功!开始远程调用库存服务");
    8. return stockServiceFeign.reduct();
    9. }
    10. /**
    11. * 如果在同类,只需要指明方法名
    12. */
    13. @GetMapping("/flow")
    14. @SentinelResource(value = "flow", blockHandler = "flowControlHandler")
    15. public String flow() {
    16. return "正常访问";
    17. }
    18. public String flowControlHandler(BlockException e) {
    19. return "Sentinel: 请求频繁!请稍后再试!";
    20. }
    1. package com.ldj.cloud.order.handler;
    2. import com.alibaba.csp.sentinel.slots.block.BlockException;
    3. /**
    4. * User: ldj
    5. * Date: 2024/4/18
    6. * Time: 23:51
    7. * Description: No Description
    8. */
    9. public class FlowContrlHandler {
    10. public static String flow(BlockException e) {
    11. return "Sentinel_Static: 请求频繁!请稍后再试!";
    12. }
    13. }

  • 相关阅读:
    我的周刊(第056期)
    Metabase学习教程:权限-1
    我的阿里云盘资源搜索引擎首次试运行
    CSDN 操作
    什么是数据仓库?
    简记C语言清空输入残留内容
    VMware虚拟机找不到*.vmdk文件
    rsync 远程同步
    【Maven】高级应用
    VirtualBox网络连接方式学习笔记
  • 原文地址:https://blog.csdn.net/dj1955/article/details/137942840