Sentinel的常用配置详解

本文解析了一线大厂Java面试中的常见问题,重点涵盖流控、限流策略、熔断机制以及Spring框架的深入理解,包括SpringBoot、SpringCloudAlibaba和SpringMVC等内容,提供学习笔记、视频讲解和实战项目源码链接。
摘要由CSDN通过智能技术生成

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

1.流控


1.快速使用

在接口上点击流控,设置单机阈值(每秒钟的并发量),针对来源不用修改。

使用postman测试,当多次点击后会报错。

2.配置详解(无特殊需求可以跳过)

1.阈值类型

  1. 线程数:当操作线程大于配置,限流!

  2. QPS:当每秒并发数大于配置,限流!

2.流程模式

  1. 直接:直接限流,上文实例展示。

  2. 关联:被关联的资源达到阈值,导致当前资源被限流。(如下:当B超过QPS为1之后,A限流:)

  1. 链路:链路上游达到阈值,当前资源限流。例如:接口的上游都是sentinel_spring_web_context如果sentinel_spring_web_context超过阈值,demo限流!

3.流控效果

  1. 直接失败:直接抛出异常,上文示例方式。

  2. warm up:当系统长期处于低水位的情况下,当流量突然增加时,直接把系统拉升到高水位可能瞬间把系统压垮。通过"冷启动",让通过的流量缓慢增加,在一定时间内逐渐增加到阈值上限,给冷系统一个预热的时间,避免冷系统被压垮。warm up冷启动主要用于启动需要额外开销的场景,例如建立数据库连接,秒杀等等,防止服务瞬间被打垮。白话讲就是,根据冷加载因子,默认3,经过一段时间,才能达到预设的QPS。下图含义是初始阈值为10/3 = 3,在5秒内到达QPS到达10。

  1. 排队等待:当达到阈值,请求一个一个通过,排队超过1s,抛出异常。

2.降级


1.慢调用比例

满足两个条件会触发熔断:

  1. 请求数大于最小请求数。下面是每秒钟5个。

  2. 慢请求达到设置的比例。(请求时间大于最大RT的次数*比例阈值)

2.异常比例

需要两个条件。

  1. 每秒钟请求超过最小请求数,这里是五个。

  2. 异常比例超过50%触发熔断。

3.异常数

需要两个条件。

Spring全套教学资料

Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。

目录:

部分内容:

Spring源码

  • 第一部分 Spring 概述
  • 第二部分 核心思想
  • 第三部分 手写实现 IoC 和 AOP(自定义Spring框架)
  • 第四部分 Spring IOC 高级应用
    基础特性
    高级特性
  • 第五部分 Spring IOC源码深度剖析
    设计优雅
    设计模式
    注意:原则、方法和技巧
  • 第六部分 Spring AOP 应用
    声明事务控制
  • 第七部分 Spring AOP源码深度剖析
    必要的笔记、必要的图、通俗易懂的语言化解知识难点

脚手框架:SpringBoot技术

它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。

Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。

  • SpringBoot入门
  • 配置文件
  • 日志
  • Web开发
  • Docker
  • SpringBoot与数据访问
  • 启动配置原理
  • 自定义starter

微服务架构:Spring Cloud Alibaba

同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。

  • 微服务架构介绍
  • Spring Cloud Alibaba介绍
  • 微服务环境搭建
  • 服务治理
  • 服务容错
  • 服务网关
  • 链路追踪
  • ZipKin集成及数据持久化
  • 消息驱动
  • 短信服务
  • Nacos Confifig—服务配置
  • Seata—分布式事务
  • Dubbo—rpc通信

Spring MVC

目录:

部分内容:

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!
…(img-aioTrHf1-1714652453565)]

部分内容:

[外链图片转存中…(img-oV6rdn5R-1714652453565)]

[外链图片转存中…(img-DjZPFyQy-1714652453565)]

《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!

Sentinel静态配置是指在应用程序启动时,通过配置文件或代码的方式,对Sentinel进行规则的配置。这些规则可以包括流控规则、降级规则、系统保护规则等。静态配置的优点是可以在应用程序启动时就完成规则的配置,避免了在运行时动态修改规则可能带来的风险。同时,静态配置也可以提高规则的可维护性和可读性。 对于上述引用中的代码,可以通过静态配置的方式对其进行限流或降级等规则的配置。例如,可以通过在配置文件中添加以下内容来对/sentinel02接口进行流控规则的配置: ``` [ { "resource": "/sentinel02", "limitApp": "default", "grade": 1, "count": 10, "strategy": 0, "controlBehavior": 0, "clusterMode": false } ] ``` 这个配置表示对/sentinel02接口进行流控,限制每秒钟最多只能处理10个请求。其中,resource表示资源名称,limitApp表示流控针对的调用来源,grade表示流控模式,count表示阈值,strategy表示流控策略,controlBehavior表示流控效果,clusterMode表示是否为集群模式。 类似地,可以通过静态配置的方式对/sentinel03接口进行降级规则的配置。例如,可以在配置文件中添加以下内容: ``` [ { "resource": "/sentinel03", "count": 10, "timeWindow": 10, "grade": 0, "statIntervalMs": 10000, "slowRatioThreshold": 0.5, "minRequestAmount": 5, "maxAllowedRtMs": 1000 } ] ``` 这个配置表示对/sentinel03接口进行降级,当10秒内请求数量超过10个时,触发降级。其中,resource表示资源名称,count表示阈值,timeWindow表示时间窗口,grade表示降级模式,statIntervalMs表示统计间隔时间,slowRatioThreshold表示慢调用比例阈值,minRequestAmount表示最小请求数量,maxAllowedRtMs表示最大允许响应时间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值