码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 微服务保护-热点参数限流


    请添加图片描述
    个人名片:

    博主:酒徒ᝰ.
    个人简介:沉醉在酒中,借着一股酒劲,去拼搏一个未来。
    本篇励志:三人行,必有我师焉。

    请添加图片描述
    本项目基于B站黑马程序员Java《SpringCloud微服务技术栈》,SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式

    【SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 点击观看

    目录

    • 二、流量控制
      • 5. 热点参数限流

    二、流量控制

    雪崩问题虽然有四种方案,但是限流是避免服务因突发的流量而发生故障,是对微服务雪崩问题的预防。我们先学习这种模式。

    5. 热点参数限流

    之前的限流是统计访问某个资源的所有请求,判断是否超过QPS阈值。而热点参数限流是分别统计参数值相同的请求,判断是否超过QPS阈值。

    1. 热点参数限流

    在实际开发中,可能部分商品是热点商品,例如秒杀商品,我们希望这部分商品的QPS限制与其它商品不一样,高一些。那就需要配置热点参数限流的高级选项

    1. 案例

    案例:给/order/{orderId}这个资源添加热点参数限流,规则如下:
    •默认的热点参数规则是每1秒请求量不超过2
    •给102这个参数设置例外:每1秒请求量不超过4
    •给103这个参数设置例外:每1秒请求量不超过10

    注意事项:热点参数限流对默认的SpringMVC资源无效,需要利用@SentinelResource注解标记资源

    1)标记资源

    给order-service中的OrderController中的/order/{orderId}资源添加注解:

    @SentinelResource("hot")
    @GetMapping("{orderId}")
    public Order queryOrderByUserId(@PathVariable("orderId") Long orderId) {
        // 根据id查询订单并返回
        return orderService.queryOrderById(orderId);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    2)热点参数限流规则

    访问该接口,可以看到我们标记的hot资源出现了:
    这里不要点击hot后面的按钮,页面有BUG
    点击左侧菜单中热点规则菜单:
    点击新增,填写表单:

    在这里插入图片描述

    3)Jmeter测试

    选择《热点参数限流 QPS1》:
    这里发起请求的QPS为5.
    包含3个http请求:

    QPS阈值为2,运行结果:

    在这里插入图片描述

    QPS阈值为4,运行结果:
    在这里插入图片描述

    QPS阈值为10,运行结果:

    在这里插入图片描述

  • 相关阅读:
    6月的最后一周,历时11个月的转换计划终于完成了 | 佛系理财
    Oracle一个诡异的临时表空间不足的问题
    深入探讨Qt树状显示功能:理论与实践
    23基于MATLAB的小波降噪,默认阈值消噪,强制消噪,给定软阈值消噪方法,数据直接替换后就可以跑。
    Day661.分析定位Java问题工具① -Java业务开发常见错误
    屏幕太大?来试试分屏吧
    docker容器操作
    Nomad 系列-快速上手
    详细描述 Java 虚拟机(JVM)的内存模型,包括堆、栈、方法区、程序计数器等部分,以及它们各自的作用和相互关系。
    uniCloud开发公众号:二、请求access_token并缓存(阿里云空间)
  • 原文地址:https://blog.csdn.net/m0_65144570/article/details/132948412
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号