Sentinel框架安装使用

一、下载地址

https://github.com/alibaba/Sentinel/releases

二、启动sentinel

        只要双击bat文件即可(开箱即用)

 三、配置pom文件和yml文件

     <!--Spring Cloud Sentinel-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        与nacos同级 

spring:
  application:
    name: nacos-stock # 定义当前服务名称
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848 # 指定正在运行的Nacos服务器的位置
    sentinel:
      transport:
        dashboard: localhost:8080 #配置Sentinel提供的运行状态仪表盘
        port: 8721 #执行限流的端口号,每个项目需设置不同端口号,例如cart模块设置为8722

四、在需要流量监控的方法添加注解@SentinelResource(value="对方法的描述",blockHandler = "限流时会调用的方法", fallback=“降级方法,抛异常时会先调用此方法”)

        //Sentinel自定义限流方法,必须public,返回值必须包含限流对象方法的反回值

 //在方法运行前不会被检测到,必须执行一次后才可以被检测到
    //该注解需添加到controller层中
    //blockHandler限流时调用的方法
    @SentinelResource(value = "减少商品库存数", 
                        blockHandler = "blokError"
                        fallback = "fallbackError")

    public JsonResult reduceCommodityCount(
            StockReduceCountDTO stockReduceCountDTO) {
        // 调用业务逻辑层
        stockService.reduceCommodityCount(stockReduceCountDTO);
        return JsonResult.ok("库存减少完成!");
    }

    //Sentinel自定义限流方法,必须public,返回值必须包含限流对象方法的反回值
    public JsonResult blokError(StockReduceCountDTO stockReduceCountDTO,
                                BlockException e) {
        return JsonResult.failed(ResponseCode.INTERNAL_SERVER_ERROR,
                "服务器忙请稍后再试");
    }

    //Sentinel自定义降级方法,必须public,返回值必须包含限流对象方法的反回值
    public JsonResult fallbackError(StockReduceCountDTO stockReduceCountDTO,
                                    Throwable e) {
        return JsonResult.failed(ResponseCode.INTERNAL_SERVER_ERROR,
                "运行发生异常,服务降级");
    }

五、启动项目打开Sentinel

http://localhost:8080/#/dashboard/home   登录账号密码都是sentinel

 六、限流,添加每秒点击次数,和并发数

七、降级

        当限流发生后会抛出异常,使用降级会调用其他特定异常 

 测试

        连续点击多次,服务器提示错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值