码农知识堂 - 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,运行结果:

    在这里插入图片描述

  • 相关阅读:
    Clock Domain Crossing Design & Verification Techniques Using System Verilog 学习
    【vue3】10.跟着官网学习vue3-表单输入绑定,双向绑定,封装input组件,封装ant-design-vue的input组件
    Android基础第五天 | 字节跳动第四届青训营笔记
    Polygon zkEVM的Dragon Fruit和Inca Berry升级
    ArcGis for JavaScript 4.23版本接入国家天地矢量地图
    计算机网络课程实训:局域网方案设计与实现(基于ensp)
    条件分支和循环机制、标志寄存器及函数调用机制
    GitLab项目组相关操作(创建项目组Group、创建项目组的项目、为项目添加成员并赋予权限)
    美格智能成为中国联通5G物联网OpenLab开放实验室生态合作伙伴,携手共创5G新未来
    AMD Ryzen 5 7600X 6-core/12-thread Raphael CPU【搬运外媒VedioCardz报道(手工翻译)】
  • 原文地址:https://blog.csdn.net/m0_65144570/article/details/132948412
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号