业务限流与高防清洗的分层部署,核心是“入口先清洗、网关再限流、应用做细限流、业务留降级”,两层不互相替代,而是按流量路径从粗到细逐级过滤。 把高防清洗放在最外侧挡洪水,把限流放在业务入口控节奏,再把降级开关留给核心链路,才不至于攻击一来就把正常用户一起误杀。
业务限流和高防清洗有什么区别?先划清分层边界
限流管“该不该放行”,清洗管“是不是攻击”
你可以把高防清洗想成小区门口的保安,先看进来的是不是可疑车辆;限流则是每个楼栋的门禁,控制谁能进、一次进多少,两者故障域不同:清洗层解决“管道被灌满”,限流层解决“服务被挤爆”,业内专家指出,把清洗和限流混在一个层里做,最容易出现“攻击没打死,正常用户先被限死”的问题。
- 高防清洗:部署在公网入口,识别DDoS、SYN Flood、UDP反射、CC等异常流量,做流量牵引、清洗、回源。
- 业务限流:部署在网关或应用侧,按IP、用户、租户、接口、URI维度限制QPS、并发连接数、请求速率。
- 分层边界:清洗层尽量少碰业务语义,限流层尽量不承担大流量清洗,二者通过回源带宽和告警联动。
分层部署的核心顺序:先清洗入口,再限流业务
行业共识认为,分层限流比单点限流更稳,实际落地按流量路径推进:
- 资产梳理:列出公网IP、域名、端口、回源地址、核心接口。
- 流量基线:观察近7天峰值带宽、QPS、连接数、TOP URI。
- 边缘清洗:接入高防IP或云清洗,设置清洗阈值、黑洞策略、端口过滤。
- 网关限流:在Nginx或API网关配置连接数和速率限制。
- 应用限流:按用户ID、租户ID、接口维度做令牌桶或漏桶。
- 业务降级:非核心接口关闭、排队页、兜底缓存、灰度开关。
这个顺序的好处是故障域清晰:清洗层误杀可以靠白名单和阈值回调处理,限流层误杀可以靠日志和灰度放量修正,不会互相甩锅。
高防清洗和限流怎么配合使用?从四层到七层的部署路径
第一层:边缘高防清洗,先挡洪水
高防控制台的操作路径通常很固定:DDoS高防控制台→接入管理→添加防护域名或IP→设置清洗阈值→开启CC防护→配置黑白名单→验证回源,清洗阈值不要拍脑袋,先用正常峰值做基线,再留出缓冲,近年来混合型攻击更常见,流量型和应用层往往一起上,所以清洗层要同时看带宽、包速率、新建连接数三个指标。
- 带宽清洗:针对UDP反射、SYN Flood等大流量攻击。
- 连接数清洗:限制单IP新建连接速率,配合SYN Cookie。
- CC清洗:识别高频访问、异常Header、无Cookie会话,触发人机验证或挑战。
- 回源保护:清洗后回源带宽设上限,避免清洗层把压力原样灌回源站。
第二层:网关限流,控制连接与速率
Nginx是最常见的七层网关限流点,配置时先定义限流区,再在location里引用:
limit_req_zone $binary_remote_addr zone=api:10m rate=20r/s;
limit_conn_zone $binary_remote_addr zone=conn:10m;
server {
location /api/ {
limit_req zone=api burst=40 nodelay;
limit_conn conn 20;
}
}
rate=20r/s表示单IP平均速率,burst=40是允许的突发量,nodelay表示突发请求立即处理,实际值要按接口容量压测后调整,网关层还要做URI级限流,比如登录接口、短信接口、下单接口单独设阈值,不要全站一个数。
第三层:应用层限流,保住核心接口
应用层限流用令牌桶或漏桶更灵活,Spring Cloud Gateway可以配RequestRateLimiter,基于Redis做分布式计数;业务代码里可用Redis+Lua做用户维度限流,关键是把限流维度拆开:
- 用户维度:单用户每分钟请求数。
- 租户维度:SaaS业务按租户套餐分配配额。
- 接口维度:查询接口宽松,写接口严格。
- 地域维度:异常来源地区可加验证码或降权。
第四层:业务降级与灰度,兜住最后一道
限流不是把用户挡在门外就完事,核心链路要有降级预案:商品详情走缓存、推荐接口返回兜底列表、支付链路保留最小可用集,灰度开关按百分比放量,先放内部用户,再放小流量,最后全量,监控看板盯住清洗触发次数、回源带宽、5xx比例、限流拒绝数,告警规则绑定到值班群。
| 层级 | 主要作用 | 典型手段 | 误杀风险 | 适用场景 |
|---|---|---|---|---|
| 边缘高防清洗 | 挡大流量攻击 | 流量牵引、清洗阈值、黑白名单 | 中 | 公网IP暴露、DDoS频发 |
| 四层网关 | 控连接和包速率 | 连接数限制、SYN Cookie | 低 | 游戏、长连接、TCP业务 |
| 七层网关 | 控请求速率 | Nginx限流、WAF CC规则 | 中 | Web API、登录、下单 |
| 应用层 | 精细配额 | 令牌桶、Redis计数 | 低 | SaaS、多租户、核心接口 |
| 业务降级 | 保核心可用 | 缓存兜底、排队页、灰度 | 低 | 大促、突发流量 |
电商大促场景下高防清洗与限流怎么部署?一套可落地的操作清单
大促前:压测、阈值、演练
大促前两周做全链路压测,拿到单机QPS、网关并发、数据库连接数上限,高防侧把清洗阈值调到略高于正常峰值,开启CC防护但先观察不拦截;网关侧按接口配置限流规则,登录、领券、下单单独设阈值;应用侧准备降级开关和缓存预热,DNS TTL调低到60秒,便于故障时快速切换。
大促中:看板、告警、手动开关
大促中盯三块看板:入口流量看清洗触发和攻击类型,网关看限流拒绝数和TOP IP,应用看RT和错误率,发现某个IP段异常,先加黑名单再观察;发现某接口被刷,先提高该接口的人机验证级别,再考虑封禁,手动开关要提前演练,避免临时找不到人。
大促后:复盘、调参、归档
大促后把清洗阈值、限流阈值、误杀案例整理成基线文档,误杀多的规则回调,攻击多的接口加规则,归档内容包括攻击时间线、清洗动作、限流命中、业务影响,下一次大促直接复用,不要每次从零开始。
北京高防清洗与业务限流部署方案:地域化接入要注意什么
北方业务就近接入与清洗时延
北京及华北用户占比较大的业务,可以把高防清洗节点放在北京或华北区域,减少回源跳数,操作路径:云解析DNS→分线路解析→华北线路指向北京高防IP→其他区域走上海或广州节点,回源优先走内网或专线,公网回源要加健康检查,备案和接入资质提前确认,避免域名接入被卡。
跨地域回源与DNS调度
跨地域回源要关注时延和带宽成本,清洗节点到源站如果跨地域,回源带宽费用和延迟都会上升,可以按业务分级:核心API走就近清洗,静态资源走CDN,非核心接口走统一清洗入口,DNS调度要配健康检查,清洗节点异常时自动切换到备用IP,TTL不要设太长,故障切换才来得及。
高防清洗服务多少钱一年?价格差异与部署顺序的取舍
计费口径:保底、弹性、清洗次数
高防清洗服务的年费通常由保底带宽、清洗峰值、IP数量、是否含WAF、地域节点共同决定,据主流云厂商公开报价口径,基础云清洗套餐年费从几千元到数万元不等,独享高防或更大保底带宽会明显抬高预算,价格词背后其实是容量词:你买的不是“清洗”两个字,而是保底带宽和清洗能力。
先买清洗还是先做限流
预算有限时,先看攻击面,公网IP直接暴露、经常被流量攻击,先接高防清洗;主要是接口被刷、爬虫、恶意调用,先做网关和应用限流,多数情况下两者都要有,但推进顺序可以按“清洗入口→网关限流→应用限流”来,先把误杀和故障域控制在边缘,再逐步细化业务规则。
业务限流与高防清洗分层部署常见问题
高防清洗能替代业务限流吗?
不能,高防清洗擅长挡大流量和异常连接,但无法理解业务语义,比如同一用户频繁领券、同一租户超配额调用,限流能补上业务维度的控制,但扛不住大流量洪水,两者配合才是分层部署。
高防清洗和限流怎么配合使用,阈值怎么定?
用基线加缓冲,清洗阈值略高于正常峰值,限流阈值按接口容量和用户等级分层,先观察日志再调,误杀多的规则放宽,攻击多的接口加严,阈值不是一次设定,要随业务节奏滚动调整。
北京高防清洗与业务限流部署方案,必须同地域吗?
不一定,清洗节点就近接入能降低时延,限流放在业务网关更灵活,跨地域回源要关注专线、内网和健康检查,同地域接入减少回源跳数,最终看业务分布和预算。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/774546.html


