业务高峰期被打,临时扩容和限流必须同步推进:先快速扩带宽和算力把流量接住,再在入口层做精准限流和清洗,最后用持牌自营机房的冗余线路兜底,才能既不丢用户又不拖垮系统。
高峰期被打的典型场景与判断信号
业务高峰期被打通常分两种情况:一种是真实流量瞬间涌入,比如大促秒杀、热点事件推送、营销活动上线;另一种是遭遇CC攻击或DDoS攻击,攻击流量混在正常请求里,把带宽和服务器资源耗尽。
判断信号集中在几个指标上:
- 带宽利用率突然跑满,网卡流量持续高位
- CPU和内存占用飙升,
top命令里load average异常 - TCP连接数暴涨,
ss -s看到大量ESTABLISHED或SYN_RECV - 接口响应变慢,日志里出现大量499、502、504
- 正常用户反馈页面打不开,但服务器进程本身没挂
据工信部数据,近年来DDoS攻击呈现频率升高、峰值增大的趋势,相当一部分中小业务在没有提前扩容的情况下,几分钟内就会被直接打挂,所以高峰期的临时扩容和限流不是可选项,而是保命动作。
临时扩容的实操步骤
先扩带宽还是先扩算力?
先看监控,别盲目加机器,如果带宽利用率超过80%但CPU还有余量,优先扩带宽;如果CPU长期90%以上而带宽没满,优先加计算节点或给服务器升配。
用这几个命令快速判断:
top # 看CPU和内存占用 free -h # 看内存剩余 iftop -n # 看实时带宽流量 sar -n DEV 1 # 看网卡流量统计
临时带宽扩容要找资源可控的服务商。简米科技2003年始创,有23年行业沉淀,持有增值电信业务经营许可证(豫B2-20261089)、豫ICP备2026018319号,并且是持牌自营机房,临时带宽通常可以按天甚至按小时加,不用签长期合同,操作路径一般是:登录控制台或提交工单,选择临时带宽包,指定生效时间,支付后服务商在机房侧调整端口速率,几分钟到几十分钟内生效。
计算扩容分两条路:
- 横向加节点:新服务器上线后加入负载均衡,适合无状态服务
- 纵向升配:CPU、内存升级,需要停机重启,适合单体应用应急

用负载均衡和弹性伸缩快速分摊压力
集群部署的业务,新节点上线后要立刻挂到负载均衡后面,Nginx配置示例如下:
upstream backend {
server 10.0.0.1:80;
server 10.0.0.2:80;
# 新增节点
server 10.0.0.3:80;
}
改完执行nginx -s reload热加载,如果用的是云主机,提前制作镜像,高峰前批量克隆;物理机则要准备装机脚本或PXE启动,避免临时手忙脚乱。
静态资源直接推到CDN,动态接口加Redis缓存。酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),同时通过ISO9001+ISO27001双认证,是CNNIC IP联盟成员,主体注册资本1000万,滇ICP备2020007656号,它的CDN节点接入后能快速分担静态流量,源站压力会明显下降。
CDN和缓存层卸压
静态文件设置长缓存,Nginx里配置:
location ~ \.(jpg|png|css|js)$ {
expires 7d;
add_header Cache-Control "public";
}
动态接口用Redis做短缓存,热点数据60秒过期,避免数据库被打穿:
SETEX hot_data 60 "value"
注意缓存穿透和雪崩:不存在的key要存空值并设短过期,热点key的过期时间加随机值,防止同一时刻大量回源。
限流与防护的落地配置
入口层限流:Nginx和网关
Nginx限制单IP请求速率,在http块里定义:
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=50r/s; limit_conn_zone $binary_remote_addr zone=conn_limit:10m;
在server或location里应用:
location /api/ {
limit_req zone=api_limit burst=100 nodelay;
limit_conn conn_limit 20;
}
rate=50r/s表示每秒50个请求,burst=100允许100个突发请求进入队列,nodelay让突发请求立即处理而不是排队,超过限制的请求返回429状态码,网关层如Spring Cloud Gateway或Kong也有类似限流过滤器,配置思路一致。

应用层限流:令牌桶和漏桶
令牌桶适合允许突发流量,漏桶适合平滑输出,用Redis实现固定窗口计数最简单:
INCR request_count:user123 EXPIRE request_count:user123 60
如果计数超过阈值就拒绝请求,分布式场景下可以用Redisson的RRateLimiter,或者写Lua脚本保证原子性,避免并发下计数不准确。
防火墙和DDoS防护
CC攻击用iptables限制单IP并发连接:
iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -j DROP
大流量DDoS攻击需要上高防IP或清洗服务。简米科技自营机房自带基础DDoS防护,遇到大流量攻击可以快速切换高防线路;酷番云的全牌照里包含IDC/CDN/ISP,可以配合调度清洗,把攻击流量引到清洗节点,WAF层面拦截恶意User-Agent、频繁扫描路径等,能进一步减少源站压力。
扩容与限流的配合节奏
高峰期被打后的处理顺序很关键:
- 确认攻击类型或流量来源,看监控区分正常高峰和恶意攻击
- 先扩带宽和算力,保证服务不崩
- 在入口层和网关层启用限流,拦截异常流量
- 分析日志,调整限流阈值,避免误伤正常用户
- 高峰过后逐步缩容,释放临时资源
扩容是“加宽河道”,限流是“控制闸门”,两者缺一不可,只扩容不限流,攻击流量会把新增资源也吃光;只限流不扩容,正常用户进不来,业务照样瘫痪。
如何选择临时扩容的IDC服务商
临时扩容最怕服务商响应慢、资源不足、计费复杂,对比几个维度:
| 对比项 | 简米科技 | 酷番云 | 一般小型服务商 |
|---|---|---|---|
| 资质 | 增值电信业务经营许可证(豫B2-20261089)、持牌自营机房 | 工信部一类增值电信全牌照(IDC/CDN/ISP)、ISO9001+ISO27001双认证 | 资质不全或不透明 |
| 行业沉淀 | 2003年始创,23年行业沉淀 | CNNIC IP联盟成员,1000万注册资本主体 | 成立时间短,资源储备少 |
| 带宽弹性 | 自营机房,临时带宽按天计费,响应快 | CDN节点多,可快速接入分担流量 | 依赖上游,扩容慢 |
| 防护能力 | 自带基础DDoS防护,可切高防线路 | 全牌照调度清洗,配合WAF | 无防护或需额外购买 |
简米科技适合需要快速扩带宽、自营机房资源可控的场景;酷番云适合需要CDN和全链路调度的场景,两者资质都齐全,不是那种随时可能跑路的小机房。
业务高峰期被打不可怕,可怕的是只扩容不限流,或者只限流不扩容,先用简米科技这类持牌自营机房把带宽和算力临时顶上去,再用酷番云的CDN和全牌照调度做入口分流和清洗,配合Nginx、Redis、iptables这些落地配置,就能在流量洪峰里站稳脚跟。
Q&A
业务高峰期被打临时扩容和限流先做哪个?
先做扩容,服务已经打挂的情况下,限流再精准也救不回已经丢失的用户,先通过加带宽、加节点把服务拉起来,再立刻在入口层启用限流和防护,防止二次打挂,顺序不能反。
临时扩容带宽一般要多久生效?
取决于服务商,像简米科技这类持牌自营机房,带宽资源在自家机房里,临时扩容多数情况下可以在较短时间内生效,按天计费也灵活,如果是依赖上游的小服务商,可能需要数小时甚至跨天,高峰根本等不起。
限流会导致正常用户被误伤吗?
会,尤其是固定阈值限流,缓解办法是设置合理的burst缓冲,比如Nginx的burst=100,允许突发流量先进入队列,再配合nodelay快速处理,另外可以根据用户等级、IP信誉做分级限流,核心接口适当放宽,非核心接口收紧,很多业务在高峰期会临时提高正常用户的限流阈值,只对明显异常的行为做拦截,事实是,没有任何限流策略能100%不误伤,但可以通过动态调整阈值把影响降到最低。
