微服务流控Sentinel3

本文详细介绍了Sentinel的工作原理、流控规则、熔断规则、热点规则、系统规则,以及如何在openfeign中整合Sentinel进行服务保护。通过实例展示了Sentinel的流控效果、熔断降级策略和热点参数限流,并探讨了规则持久化,包括从原始模式到push模式的配置。此外,还演示了如何将Sentinel规则持久化到Nacos配置中心并实现动态更新。
摘要由CSDN通过智能技术生成

目录

Sentinel工作原理

流控规则

熔断规则

热点规则

系统规则

openfeign整合sentinel

规则持久化


为什么要流控

解决方案

超时机制

服务限流

 服务熔断

  

 服务降级

 

Sentinel工作原理

Sentinel保护方式

API实现

引入依赖

        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-core</artifactId>
            <version>1.8.0</version>
        </dependency>
@RestController
@RequestMapping("/sentinel/")
public class HelloController {

    @Resource
    OrderFeignService orderFeignService;
    private static final String RESOURCE_NAME="helloSentinel";

    @RequestMapping("hello")
    public String findOrders(@RequestParam(value = "id") String id){
        Entry entry=null;
        try {
            entry= SphU.entry(RESOURCE_NAME);//资源名,唯一标识字符串
            //要保护的业务
            System.out.println("正常");
            return orderFeignService.findOrders(id).getName();
        } catch (BlockException e) {
            return "流控了";
        } catch (Exception e){
            Tracer.traceEntry(e,entry);
        }finally{
            if(entry!=null){
                entry.exit();
            }
        }
        return null;
    }
    /**定义流控规则**/
    @PostConstruct
    private static void initFlowRules(){
        List<FlowRule> list=new ArrayList<>();
        FlowRule rule=new FlowRule();
        //设置受保护的资源
        rule.setResource(RESOURCE_NAME);
        //设置流控规则 QPS
        rule.setGrade(RuleConstant.FLOW_GRADE_QPS);
        //设置受保护资源的阈值
        rule.setCount(1);
        list.add(rule);
        FlowRuleManager.loadRules(list);//加载配置好的规则
    }

}

狂点请求接口:http://localhost:8048/sentinel/hello?id=1

 也可以用注解 SentinelResource

    @RequestMapping("testSenOrders")
    @SentinelResource(value = "
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值