springcloud(9.3)Alibaba-Sentinel 限流管理

本文档介绍了如何在SpringCloud中使用Alibaba Sentinel进行限流操作,包括基于并发线程数和QPS的限流策略。详细讲解了Sentinel的限流概念、配置步骤、限流方式(抛异常、返回Boolean值、注解方式),并提供了注解方式的详细用法,包括版本差异和异常处理。通过实现CommandLineRunner接口或@PostConstruct注解加载限流规则,以及如何处理FlowException异常。
摘要由CSDN通过智能技术生成

Sentinel 的限流操作是在 前几篇相关博文的代码基础上 修改的!!!!!

https://blog.csdn.net/lettuce_/article/details/102568573

限流:

当我们设计了一个函数,准备上线,这时候这个函数会消耗一些资源,处理上限是1秒服务3000个QPS,但如果实际情况遇到高于3000的QPS该如何解决呢?Sentinel提供了两种流量统计方式,一种是统计并发线程数,另外一种则是统计 QPS,当并发线程数超出某个设定的阀值,新的请求会被立即拒绝,当QPS超出某个设定的阀值,系统可以通过直接拒绝、冷启动、匀速器三种方式来应对,从而起流量控制的作用。

基本概念:

资源Resource:可以是任意对象,一个字符串、一个方法,一个类对象;

规则Rule:需要如何限制或者降级,比如按照“QPS/失败比率”做出相应的处理;

入口Entry:每次资源调用都会创建一个Entry对象,Entry 创建的时候,同时也会创建一系列功能插槽
(slot chain),链里面的slot各司其职,比如其中的FlowSlot 则用于根据预设的限流规则
以及前面 slot 统计的状态,来进行流量控制,DegradeSlot 则通过统计信息以及预设的规则,来
做熔断降级;AuthoritySlot 则根据配置的黑白名单和调用来源信息,来做黑白名单控制;

操作:

1. 添加 jar包依赖

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
            <version>0.2.1.RELEASE</version>
        </dependency>

有些博客说 引入许多依赖: 

但这些 使用 spring-cloud-starter-alibaba-sentinel 一个就可以引入全部

2. 修改配置文件

和上一篇博文的配置文件一样,具体可查询上一篇博文

3. 限流方式

3.1 使用 抛异常方式:

try (Entry entry=SphU.entry("resourceName")){
    //被保护的业务逻辑代码块(资源)
    //do something here 
}catch(BlockException e){
    //阻止资源访问
    //相关限流降级操作
}finally{
   
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值