SpringCloud: sentinel链路限流

一、配置文件要增加

      spring.cloud.sentinel.webContextUnify: false

二、在要限流的业务方法上使用@SentinelResource注解

package cn.edu.tju.service;

import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @SentinelResource(value = "getUser", blockHandler = "myBlockingHandler")
    public String getUser(){
        return " a user...";
    }

    public String myBlockingHandler(BlockException ex){
        System.out.println("链路限流");
        return "链路限流啦";
    }
}

三、定义接口调用业务方法

package cn.edu.tju.controller;

import cn.edu.tju.service.UserService;
import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.alibaba.csp.sentinel.slots.block.BlockException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    @RequestMapping("/getUser1")
    public String getUser1(){
        return userService.getUser();
    }



    @RequestMapping("/getUser2")
    public String getUser2(){
        return userService.getUser();
    }
}

四、在sentinel控制台设置链路限流规则:

五、启动应用,快速刷新接口/getUser1

相关推荐
Che3rry3 分钟前
C/C++|关于多线程冲突
java·c语言·c++
lovPopcorn6 分钟前
MQ入门(一):同步调用和异步调用--RabbitMQ基础入门
java·rabbitmq
极客先躯27 分钟前
高级java每日一道面试题-2024年9月15日-架构篇[分布式篇]-如何在分布式系统中实现事务?
java·数据库·分布式·面试·架构·事务·分布式篇
椅子哥1 小时前
MyBatis操作数据库-XML实现
xml·java·数据库·spring boot·mybatis
2402_857589361 小时前
基于Spring Boot的Java免税商品优选商城设计
java·spring boot·后端
L_cl1 小时前
数据结构与算法——Java实现 7.习题——反转链表
java·开发语言·链表
我明天再来学Web渗透2 小时前
【java面经】微服务架构速记
java·开发语言·微服务·云原生·架构
秦淮渔火2 小时前
单例模式(饿汉式-懒汉式)
java·开发语言·单例模式
蔚一2 小时前
Java设计模式(单例模式)——单例模式存在的问题(完整详解,附有代码+案例)
java·开发语言·单例模式·设计模式
ღ᭄陽先生꧔ꦿ᭄2 小时前
Java异常架构与异常关键字
java·开发语言·架构