iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Sentinel热点key限流的实现详解
  • 694
分享到

Sentinel热点key限流的实现详解

2024-04-02 19:04:59 694人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录基本介绍兜底方法参数例外项基本介绍 何为热点 热点即经常访问的数据,很多时候我们希望统计或者限制某个热点数据中访问频次最高的TopN数据,并对其访问进行限流或者其它操作 兜底方

基本介绍

何为热点

热点即经常访问的数据,很多时候我们希望统计或者限制某个热点数据中访问频次最高的TopN数据,并对其访问进行限流或者其它操作

兜底方法

分为系统默认和客户自定义两种

之前的case,限流出问题后,都是用sentinel系统默认的提示:Blocked by Sentinel (flow limiting)

我们能不能自定?类似hystrix,某个方法出问题了,就找对应的兜底降级方法?

结论:

从HystrixCommand 到@SentinelResource

@GetMapping("/testHoTKEy")
@SentinelResource(value = "testHotKey",blockHandler = "dealHandler_testHotKey")
public String testHotKey(@RequestParam(value = "p1",required = false) String p1, 
                         @RequestParam(value = "p2",required = false) String p2){
    return "------testHotKey";
}
public String dealHandler_testHotKey(String p1,String p2,BlockException exception)
{
    return "-----dealHandler_testHotKey";
}

限流模式只支持QPS模式,固定写死了。(这才叫热点)

@SentinelResource注解的方法参数索引,0代表第一个参数,1代表第二个参数,以此类推

单机阀值以及统计窗口时长表示在此窗口时间超过阀值就限流。

上面的抓图就是第一个参数有值的话,1秒的QPS为1,超过就限流,限流后调用dealHandler_testHotKey支持方法。

方法testHotKey里面第一个参数只要QPS超过每秒1次,马上降级处理

访问Http://localhost:8401/testHotKey没问题

同理带参数访问也没有问题

同理带参数访问也1s点个俩三次发现问题

参数例外项

上述案例演示了第一个参数p1,当QPS超过1秒1次点击后马上被限流

前提条件 :热点参数的注意点,参数必须是基本类型或者String

到此这篇关于Sentinel热点key限流的实现详解的文章就介绍到这了,更多相关Sentinel热点key限流内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Sentinel热点key限流的实现详解

本文链接: https://www.lsjlt.com/news/166461.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Sentinel热点key限流的实现详解
    目录基本介绍兜底方法参数例外项基本介绍 何为热点 热点即经常访问的数据,很多时候我们希望统计或者限制某个热点数据中访问频次最高的TopN数据,并对其访问进行限流或者其它操作 兜底方...
    99+
    2024-04-02
  • Sentinel热门词汇限流的实现详解
    目录热点参数限流基本使用热点参数限流 何为热点?热点即经常访问的数据。很多时候我们希望统计某个热点数据中访问频次最高的 Top K 数据,并对其访问进行限制。比如: 商品 ID 为参...
    99+
    2024-04-02
  • Sentinel热点规则示例详解分析
    目录概念@SentinelResource小试牛刀TestController.javadefaultFallbackfallback流量控制熔断降级热点参数限流高级选项概念 ...
    99+
    2024-04-02
  • SpringCloud中使用Sentinel实现限流的实战
    目录前言正文 SentinelSentinel的限流原理第一步:部署sentinel-dashboard第二步:在项目中整合sentinel前言 在分布式的项目中经常会遇到那种高并发...
    99+
    2024-04-02
  • SpringCloud中如何使用Sentinel实现限流
    这篇文章主要介绍了SpringCloud中如何使用Sentinel实现限流的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud中如何使用Sentinel实现限流文章都会有所收获,下面我们一起来看...
    99+
    2023-06-26
  • Spring Cloud Alibaba之Sentinel实现熔断限流功能
    微服务中为了防止某个服务出现问题,导致影响整个服务集群无法提供服务的情况,我们在系统访问量和业务量高起来了后非常有必要对服务进行熔断限流处理。 其中熔断即服务发生异常时能够更好的处理...
    99+
    2024-04-02
  • Redis监听过期的key实现流程详解
    目录一、简介二、maven依赖三、编码实现3.1、application.properties3.2、Redis配置类3.3、监听器3.4、服务类3.5、工具类四、测试4.1、测试类...
    99+
    2023-02-28
    Redis监听过期的key Redis监听key
  • Java微服务Filter过滤器集成Sentinel实现网关限流过程详解
    目录Gateway-过滤器Filter局部路由过滤器使用局部过滤器全局过滤器使用全局过滤器集成Sentinel实现网关限流网关限流API分组限流Gateway-过滤器Filter 过...
    99+
    2023-02-10
    Java微服务过滤器网关限流 Java网关限流 Java过滤器集成Sentinel网关限流
  • sentinel 整合spring cloud限流的过程解析
    spring cloud基于http进行服务调用,大致过程如下: 服务提供端:提供http接口,并向服务中心注册服务信息服务消费端:将服务端的http接口作为本地服务,从注册中心读取...
    99+
    2024-04-02
  • Golang官方限流器库实现限流示例详解
    目录前言例子实现小结前言 在翻Golang官方库的过程中,发现一个有趣的库golang.org/x/time ,里面只有一个类rate,研究了一下发现它是一个限流器,实现了很多的功能...
    99+
    2024-04-02
  • Spring Cloud Alibaba之Sentinel实现熔断限流功能的方法
    这篇文章主要介绍Spring Cloud Alibaba之Sentinel实现熔断限流功能的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!sentinel简介这个在阿里云有企业级的商用版本 应用高可用服务 AHA...
    99+
    2023-06-14
  • Spring Cloud Alibaba微服务组件Sentinel实现熔断限流
    目录Sentinel简介Sentinel具有如下特性:安装Sentinel控制台创建sentinel-service模块限流功能创建RateLimitController类根据URL...
    99+
    2024-04-02
  • Java限流实现的几种方法详解
    目录计数器信号量滑动窗口漏桶令牌桶测试示例代码计数器 计数器限流方式比较粗暴,一次访问就增加一次计数,在系统内设置每 N 秒的访问量,超过访问量的访问直接丢弃,从而实现限流访问。 具...
    99+
    2022-12-03
    Java限流 Java限流算法 Java限流方案
  • 详解Redis实现限流的三种方式
     面对越来越多的高并发场景,限流显示的尤为重要。       当然,限流有许多种实现的方式,Redis具有很强大的功能,我用Redis实践了三...
    99+
    2024-04-02
  • JavaRateLimiter的限流详解
    目录限流背景限流相关概念服务熔断服务降级服务隔离服务限流比较常见的限流方法限流工具类RateLimiter总结限流背景 在早期的计算机领域,限流技术(time limiting)被用...
    99+
    2024-04-02
  • SpringBootRedis用注释实现接口限流详解
    目录1. 准备工作2. 限流注解3. 定制 RedisTemplate4. 开发 Lua 脚本5. 注解解析6. 接口测试7. 全局异常处理1. 准备工作 首先我们创建一个 Spri...
    99+
    2024-04-02
  • 详解Golang实现请求限流的几种办法
    简单的并发控制 利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channel 里写入点东西(随便写啥...
    99+
    2024-04-02
  • Redis热点 Key 问题发现与5种解决方案是什么
    本篇文章给大家分享的是有关Redis热点 Key 问题发现与5种解决方案是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。热点问题产生的原因...
    99+
    2024-04-02
  • Sentinel实现动态配置的集群流控的方法
    介绍 为什么要使用集群流控呢? 相对于单机流控而言,我们给每台机器设置单机限流阈值,在理想情况下整个集群的限流阈值为机器数量✖️单机阈值。不过实际情况下流...
    99+
    2024-04-02
  • Java 实现限流器处理Rest接口请求详解流程
    Maven依赖 <dependency> <groupId>com.google.guava</groupI...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作