回答:常见场景包括:1) 疫情通报或检测结果发布瞬间的用户并发访问;2) 线上疫苗、核酸预约系统在开放时间的高并发请求;3) 舆论或媒体报道导致的短时间访问爆发;4) 恶意机器人或爬虫产生的异常访问。针对这些场景,设计时需区分业务峰值(可预期)与突发峰值(不可预期)并分别准备弹性扩展和保护策略。
采用容量预留与按需扩展并重,结合流量预测与演练,提前准备冷备资源与流量削峰机制,确保核心API在峰值下仍可提供降级服务。
例如在预约放号时,采用排队页与令牌桶限流可以将瞬时请求转化为可控的处理速率,降低后端压力。
必须区分真实用户与爬虫/攻击流量,配合行为分析和验证机制(如验证码、行为指纹)减少误拦与误放。
回答:推荐采用云原生架构与微服务拆分,利用容器编排(Kubernetes)实现水平自动扩缩容(HPA/Cluster Autoscaler)。配合CDN与边缘缓存,将静态内容与可缓存响应下沉到边缘,降低回源压力。同时设计异步化处理和队列(Kafka/RabbitMQ),将非实时工作从请求路径中剥离。
自动扩容、容器镜像仓库、弹性负载池、预热策略和冷启动优化是必须项。使用灰度发布与滚动升级减少扩容带来的风险。
对关键服务设置冷启动镜像与预拉策略,使用探活(readiness/liveness)确保流量只导入健康实例。
回答:采用多层防护:首先在边缘使用云厂商或第三方的清洗网络(CDN + WAF + DDoS清洗),其次在应用层实现速率限制、行为识别与IP信誉管理,再在后端配置黑洞策略与流量削峰。对重要API使用接入白名单和认证加强访问控制。
边缘清洗负责大流量拦截,WAF拦截常见攻击,应用层限流负责细粒度保护。日志和样本应实时回传用于威胁情报更新。
设置基于流量阈值的自动切换策略(如启用更严格的限制、切换到维护页、触发清洗规则),并配合人工应急流程。
定期演练DDoS响应和切换流程,确保在清洗误判或误拦时能快速回退与恢复。
回答:优先采用无状态服务设计,将会话状态外置到分布式缓存(Redis)或数据库。负载均衡器采用L4/L7分层策略:L4用于高性能转发,L7用于基于内容的路由和健康检查。尽量避免应用级sticky session,必要时使用基于Token的会话或短期sticky结合状态同步。
设置多维度健康检查(HTTP探针、应用指标、慢日志),并基于权重和延迟进行流量调度,避免单点饱和。
对实时查询类API使用多活部署与全局负载均衡,数据写入采用异步复制与幂等设计,减少跨节点一致性需求。
回答:可观测性是关键:采集指标(Prometheus)、分布式追踪(Jaeger/Zipkin)、集中化日志(ELK/EFK)与业务指标结合,建立SLO/SLI和明确的告警策略。故障恢复包括自动重试、回滚策略、数据库备份与多可用区部署。演练(Chaos Engineering)用于验证故障场景下的恢复能力。
告警需分级并与Runbook绑定,自动化脚本用于常见恢复操作,减少人为误操作。建立事故后分析机制(RCA)不断改进。
定期进行备份恢复演练,验证恢复点(RPO)与恢复时间(RTO)是否满足业务需求,保证在流量激增或故障时能快速回到可接受状态。