<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>限流 on Leanku</title>
    <link>https://blog.leanku.com/tags/%E9%99%90%E6%B5%81/</link>
    <description>Recent content in 限流 on Leanku</description>
    <image>
      <url>https://blog.leanku.com/papermod-cover.png</url>
      <link>https://blog.leanku.com/papermod-cover.png</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Fri, 11 Jul 2025 20:46:01 +0800</lastBuildDate><atom:link href="https://blog.leanku.com/tags/%E9%99%90%E6%B5%81/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>高并发系统设计-限流</title>
      <link>https://blog.leanku.com/post/microservice/%E9%AB%98%E5%B9%B6%E5%8F%91%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1-%E9%99%90%E6%B5%81/</link>
      <pubDate>Fri, 11 Jul 2025 20:46:01 +0800</pubDate>
      
      <guid>https://blog.leanku.com/post/microservice/%E9%AB%98%E5%B9%B6%E5%8F%91%E7%B3%BB%E7%BB%9F%E8%AE%BE%E8%AE%A1-%E9%99%90%E6%B5%81/</guid>
      <description>高并发系统设计-限流 一、什么是限流 限流（Rate Limiting）是指限制单位时间内允许进入系统的请求数量。
简单来说，就是：
控制流量进入系统的速度，而不是等系统崩溃之后再处理。
例如：
某接口限制：1000 Request / Second
如果一秒钟来了：1500 Request
那么：1000正常处理，500拒绝访问
通常返回：HTTP 429 Too Many Requests
限流的本质就是：
宁可拒绝一部分请求，也不要让整个系统崩溃。
二、为什么需要限流 因为系统资源是有限的。
例如：
服务器配置：
CPU：8 Core Memory：16GB MySQL连接池：100 Redis连接池：200 这些资源都存在上限。
假设数据库最大只能处理： 5000 QPS
如果突然来了：30000 QPS
没有限流：30000全部访问MySQL-&amp;gt;连接池耗尽-&amp;gt;CPU100%-&amp;gt;慢SQL-&amp;gt;超时-&amp;gt;&amp;hellip;-&amp;gt;系统崩溃
有了限流：30000-&amp;gt;Gateway-&amp;gt;允许5000-&amp;gt;25000直接拒绝-&amp;gt;系统稳定
虽然部分用户会收到&amp;quot;系统繁忙&amp;quot;的提示，但系统整体仍然保持可用。
这正是限流存在的意义
三、典型应用场景 限流几乎存在于所有互联网系统中。
1、登录接口 例如：POST /login
限制：每个IP 5次/分钟
防止：
暴力破解密码 恶意攻击 短时间大量登录 2、短信验证码 3、支付接口 4、秒杀系统 5、开放API 四、限流的位置 限流通常不是只有一层。
一般有四层。
第一层：CDN 例如： Cloudflare-&amp;gt;限制恶意流量
主要抵御：
CC攻击 DDoS Bot 第二层：Nginx / Gateway 例如： Client-&amp;gt;Gateway-&amp;gt;Application</description>
    </item>
    
  </channel>
</rss>
