Sentinel

1.在github上下载Sentinel Dashboard
2.目录下执行java -jar XXX启动
3.登录localhost:8080 显示界面即启动成功

新建module添加依赖
修改yml

spring:
    application:
        name: sentinel-payment
    cloud:
        nacos:
            discovery:
                server-addr: localhost:8500
        sentinel:
            transport:
                dashboard: localhost:8080
                port: 8719

启动即可

sentinel使用的是懒加载模式
当服务被访问后才能在sentinel dashboard中看见

服务控制
在这里插入图片描述

流控模式

在这里插入图片描述
关联:当与A关联的资源B达到阈值时,就限流自己
在这里插入图片描述

预热 :冷启动,防止服务低访问时突然大量访问拖垮服务 --预热 让阈值逐渐增加(逐渐升到设定阈值)

服务 降级
在这里插入图片描述

低访问量直接抛出错误问题
在这里插入图片描述

热点限流
对某个参数的请求进行流控

@RequestMapping("/test3")
@ResponseBody
@SentinelResource(value = "test3",blockHandler = "test2Handler")
public String test2(@RequestParam(value = "p1",required = false) String p1){
    return "test3";
}


public String test2Handler(String p1, BlockException exception){


    return "intenal error!";
}

在这里插入图片描述

系统规则: 根据电脑负载情况自动调节系统整体流量
在这里插入图片描述

SentinelResource注解 blockHandler只会在违背流控配置时调用,不会处理运行时异常,fallback 运行时异常时调用

@SentinelResource(value = "test3",blockHandler = "test2Handler")

解决业务代码与降级方法的耦合—fallback 的用法一样
1.将降级方法放在一个类中

public class CustomBlockHandler {
    public static String test4Handler(BlockException exception){
        return "custom handler for intenal error!";
    }
}
        2.修改注解
@RequestMapping("test4")
@ResponseBody
@SentinelResource(value = "test4",blockHandlerClass = CustomBlockHandler.class,blockHandler = "test4Handler")
public String test4(){
    return "test4";
}

配置不捕获的异常

整合feign
配置对sentinel的支持

feign:
  sentinel:
    enabled: true

启动类添加注解@EnableFeignClient
。。。然后就是feign的操作

配置持久化,保存到nacos中

<dependency>
    <groupId>com.alibaba.csp</groupId>
    <artifactId>sentinel-datasource-nacos</artifactId>
</dependency>
sentinel:
  transport:
    dashboard: 127.0.0.1:8080
    port: 8719
    
  datasource:
    ds1:
      nacos:
        server-addr: localhost:8500
        dataId: payment-sentinel
        groupId: DEFAULT_GRUOP
        data-type: json
        rule-type: flow

在nacos配置中心中添加配置,dataId为yml配置的id
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值