消峰限流有哪几种方式?

消峰限流的方式

  1. 业务视角
    1. 验证码
    2. 回答问题环节
  2. 技术视角
    1. 消息队列异步化用户请求

      在这里插入图片描述

    2. 限流,对流量进行层层过滤

      1. nginx 层限流,
        1. 一是控制速率 limit_req 漏桶算法

          limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
          server { location / { limit_req zone=mylimit;}
          }
          **-------------------------------------------------------------**
          **以上配置表示,限制每个 IP 访问的速度为 2r/s**
          limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;
          server { location / { limit_req zone=mylimit **burst**=4;}
          }burst=4 表示每个 IP 最多允许4个突发请求,如果单个 IP 在 10ms 内发送 6 次请求
          会有 1 个请求被立即处理了,4 个请求被放到 burst 队列里排队执行了,
          另外 1 个请求被拒绝了。
          **--------------------------------------------------------------**
          limit_req_zone $userId zone=mylimit:10m rate=2r/s;
          server { location / { limit_req zone=mylimit;}
          }
          **基于用户ID的限流**
          
        2. 二是控制并发连接数 limit_conn_zone limit_conn

          limit_conn_zone $binary_remote_addr zone=perip:10m;
          limit_conn_zone $server_name zone=perserver:10m;
          server {...limit_conn perip 10;limit_conn perserver 100;
          }
          其中 limit_conn perip 10 表示限制单个 IP 同时最多能持有 10 个连接;
          limit_conn perserver 100 表示 server 同时能处理并发连接的总数为 100
        3. ngx_http_upstream_module

      2. 服务端限流
        1. 常用的限流算法
          1. 时间窗口算法
          2. 漏桶算法
          3. 令牌算法
      3. 技术实现
        1. Nginx
        2. guava RateLimiter
        3. tomcat limitlatch
        4. Sentinel & Hystrix
      4. 方案
        1. 同一用户限流,根据UserID限流
        2. 某个IP进行限流
        3. 接口进行限流

      限流是一种有损的技术消峰;验证码、回答问题以及异步化消息队列是无损技术消峰


    延伸阅读
    • 设计模式——责任链模式
    • 如何设计 API: 基本指南 + 最佳实践
    • 金融行业业务流程指南-三级模型
    • 企业架构 架构治理 金融IT架构 JAVA技术 大数据 Devops 低代码;生活 思维 健身

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/444978.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode链表(三)-反转链表

题目 . - 力扣(LeetCode) 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 思路 首先定义一个cur指针,指向头结点,再定义一个pre指针,初始化为None。 然后就要开始反转了&…

其他浏览器可以联网,但edge不能联网

问题描述: 今早edge无法上网,检测网络连接正常,而且其他chrome,Firefox和360浏览器都可以上网。 解决方案: 注意:为防止是代理问题,可以在扩展中禁用后再试试 如果没有代理或者禁用代理也不…

基于SpringBoot摄影师分享交流社区【附源码】

基于SpringBoot摄影师分享交流社区 效果如下: 系统首页界面 用户注册界面 作品信息页面 公告资讯页面 管理员登录页面 管理员功能界面 作品类别界面 作品信息界面 研究背景 随着互联网技术的快速发展,数字摄影技术的普及使得越来越多的摄影爱好者渴望…

Python、R语言Lasso、Ridge岭回归、XGBoost分析Airbnb房屋数据:旅游市场差异、价格预测|数据分享...

全文链接:https://tecdat.cn/?p37839 分析师:Kefan Yu 在大众旅游蓬勃发展的背景下,乡村旅游已成为推动乡村经济、社会和文化发展的关键力量。当前,乡村旅游接待设施主要以招待所、小宾馆和农家乐等形式存在。然而,一…

企业远控私有化部署解决方案-内信互联

内信互联(DoLink),是点量软件新推出的企业私有化远程控制系统解决方案。很多朋友对这个产品还不是很了解,今天点量小编就对其基础功能做一些详细说明,如果您想快速拥有自己的企业私有远程控制系统,欢迎联系…

基于SpringBoot+Vue+MySQL的企业招聘管理系统

系统展示 用户前台界面 管理员后台界面 企业后台界面 系统背景 在当今数字化转型的大潮中,企业对于高效、智能化的人力资源管理系统的需求日益增长。招聘作为人力资源管理的首要环节,其效率与效果直接影响到企业的人才储备与竞争力。传统的招聘方式不仅耗…

摩托车一键启动兼容机械钥匙点火

摩托车无钥匙一键启动 工作原理 摩托车无钥匙一键启动系统的工作原理主要依赖于RFID无线射频技术和车辆身份编码识别系统。这种技术能够通过小型化、小功率的射频天线来识别车辆的身份,并与遥控系统结合,实现双重射频系统和双重防盗保护。这意味着&…

《深度学习》【项目】OpenCV 答题卡识别 项目流程详解

目录 一、项目上半部分 1、定义展示图像函数 2、预处理 运行结果: 3、轮廓检测并绘制 运行结果: 4、排序轮廓 5、定义排序点函数 6、透视变换 1)定义透视变换处理函数 2)执行透视变换 运行结果: 7、二值化…

信息安全工程师(28)机房安全分析与防护

前言 机房安全分析与防护是一个复杂而细致的过程,涉及到物理安全、环境控制、电力供应、数据安全、设备管理、人员管理以及紧急预案等多个方面。 一、机房安全分析 1. 物理安全威胁 非法入侵:未经授权的人员可能通过门窗、通风口等进入机房,…

解决无法安装“vue.volar“扩展,跟vscode版本不兼容问题

问题:安装volar插件的时候提示跟vscode版本不兼容 解决方案 1、进入VSCode插件市场,搜索Vue.volar(直达链接:volar下载界面) 2、点击download Extension(下载插件) 3、下载.vsix文件完成后&a…

基于Opencv中的DNN模块实现图像/视频的风格迁移

一、DNN模块的介绍 1、简介 OpenCV中的DNN(Deep Neural Network)模块是一个功能强大的组件,它支持深度学习网络模型的加载和推理。虽然DNN模块不提供模型的训练功能,但它可以与主流的深度学习框架(如TensorFlow、Caf…

Rope – 基于深度学习模型开源的AI换脸技术

Rope是什么 Rope是一款开源的AI换脸工具,基于insightface的inswapper_128模型构建,提供一个用户友好的图形界面。用户通过上传图片或视频,在几秒钟内完成换脸操作,效果逼真。Rope支持多种超分辨率算法,支持用户调整面…

深入探讨B+树索引的基本概念、工作原理以及在MySQL中的应用

文章目录 1. B树的基本概念2. B树在MySQL中的实现3. 示例代码4. 结论 在数据库管理系统中,索引是一种特殊的文件,它能够提高数据检索的速度。MySQL作为最流行的开源关系型数据库之一,提供了多种索引类型来满足不同的性能需求。其中&#xff0…

ARP断网攻击

ARP断网攻击 1.课前准备 kali 作为ARP攻击机,192.168.110.26 MAC地址:00:0c:29:fc:66:46 win10 作为被攻击方,192.168.110.12 MAC地址:1c:69:7a:a4:cf:92 网关(路由器),192.168.110.1 MAC地…

[单master节点k8s部署]34.ingress 反向代理(一)

ingress是k8s中的标准API资源,作用是定义外部流量如何进入集群,并根据核心路由规则将流量转发到集群内的服务。 ingress和Istio工作栈中的virtual service都是基于service之上,更细致准确的一种流量规则。每一个pod对应的service是四层代理&…

ESP32接入扣子(Coze) API使用自定义智能体

使用ESP32接入Coze API实现聊天机器人的教程 本示例将使用ESP32开发板通过WiFi接入 Coze API,实现一个简单的聊天机器人功能。用户可以通过串口向机器人输入问题,ESP32将通过Coze API与智能体进行通信,并返回对应的回复。本文将详细介绍了如…

PyCharm打开及配置现有工程(详细图解)

本文详细介绍了如何利用Pycharm打开一个现有的工程,其中包括编译器的配置。 PyCharm打开及配置现有工程 1、打开工程2、配置编译器 1、打开工程 双击PyCharm软件,点击左上角 文件 >> 打开(O)… 选中想要打开的项目之后点击“确定” 2、配置编译器…

[Algorithm][贪心][可被三整除的最大和][距离相等的条形码][重构字符串]详细讲解

目录 1.可被三整除的最大和1.题目链接2.算法原理详解3.代码实现 2.距离相等的条形码1.题目链接2.算法原理详解3.代码实现 3.重构字符串1.题目链接2.算法原理详解3.代码实现 1.可被三整除的最大和 1.题目链接 可被三整除的最大和 2.算法原理详解 思路:正难则反 贪…

326. 3 的幂

文章目录 326. 3 的幂解题思路Go代码 326. 3 的幂 326. 3 的幂 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回true;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n 3 x n …

Android设置状态栏隐藏、固定颜色

设置隐藏效果&#xff1a; <?xml version"1.0" encoding"utf-8"?> <resources><style name"Theme.XiaoShuang" parent"Theme.AppCompat.Light.NoActionBar"><!--设置沉浸式通知栏--><item name"an…