
1. 目标:在大型促销期保证香港站群(cn1/cn2)可用性、响应时间低于1.5s、错误率<0.5%并能快速切换。小分段:a) 明确流量峰值预估 b) 明确SLA c) 明确切换窗口与允许延迟。
2. 步骤:a) 列出所有域名、子域和证书 b) 检查源站IP、带宽与硬件规格 c) 确认监控/日志管道(Prometheus/ELK)已到位 d) 备份当前配置(nginx、负载均衡、防火墙)。
3. 实操:a) 根据历史峰值乘以1.5倍估算并发连接 b) 计算每台服务器QPS和带宽上限 c) 制定扩容策略(水平扩容为主) d) 写入容量文档并演练扩容流程。
4. 操作步骤:a) 使用GeoDNS或权重DNS分别将用户分流到cn1/cn2 b) 设置低TTL(60-120s)用于促销期切换 c) 预配置备用A记录并保留CNAME回退 d) 测试:使用dig和curl验证解析与响应。
5. Nginx示例:a) upstream定义多台后端并开启keepalive;b) proxy_cache配置静态资源;c) 设置健康检查:proxy_next_upstream与fastcgi_read_timeout;d) 备份nginx.conf并通过nginx -t再reload。
6. 具体步骤:a) 将静态资源交由CDN(香港节点)并设置长缓存(Cache-Control: max-age) b) 实施预热(curl并行请求热点URL) c) 配置按路径或参数的缓存穿透规则 d) 学会使用CDN的API做批量刷新。
7. 实操指南:a) 会话放到Redis/DB共享,避免本地会话依赖 b) 为高并发场景开启连接池和读写分离 c) 对关键表建索引并准备只读副本 d) 在切换窗口锁定写入或采用灰度写入策略。
8. 工具与命令:a) 使用wrk或k6做渐增压测(示例:wrk -t8 -c100 -d5m http://host/) b) 记录P95/P99与错误码 c) 在预生产克隆环境复现并执行切换演练 d) 根据结果调整缓存与资源池。
9. 必监指标:a) 响应时间、错误率、QPS、带宽 b) 后端CPU、内存、连接数 c) DNS解析耗时与TTL命中率 d) 配置阈值告警并准备自动化脚本(如流量突增触发扩容)。
10. 切换步骤:a) 通知团队并在维护窗口内执行 b) 把部分流量权重从cn1调到cn2(权重DNS或SLB) c) 观察30分钟内关键指标,若异常执行快速回退 d) 回退步骤:恢复原权重、清理不一致session并记录事件。
11. 排查步骤:a) 若延迟升高,先检查网络链路与CDN缓存命中 b) 若错误率升,查看应用日志定位异常API c) 若解析不稳定,检查DNS供应商和TTL配置 d) 提前准备回放流量与热点降级策略。
12. 细节操作:a) 对促销页面启用SSR或预渲染减少首屏时间 b) 使用合理的meta、hreflang和canonical避免重复索引 c) 限制爬虫速率并对重要资源设置优先缓存 d) 保留日志供后续SEO分析。
13. 复盘要点:a) 汇总流量曲线、错误率和用户体验数据 b) 记录切换决策点与时间线 c) 更新SOP与Runbook d) 将学到的问题写入改进计划并安排补丁或优化任务。
14. 示例:a) 使用shell+curl定期探测并记录状态(curl -s -o /dev/null -w "%{http_code},%{time_total}\n" http://域名) b) 使用API自动调整DNS权重并在异常时触发回退 c) 将脚本加入CI并做权限控制。
15. 答:先用低TTL与权重/GeoDNS做分流,保持域名不变;为避免索引波动,确保所有页面返回200并保留相同meta与canonical;切换后监控搜索引擎爬虫日志并在必要时通过robots或X-Robots-Tag细化控制。
16. 答:最易忽略的是会话丢失与缓存不一致。规避方法:会话使用共享存储(Redis)、短时间内关闭写入或使用灰度写入,并在切换前预热缓存与同步热点数据。
17. 答:复核日志与指标、清理临时低TTL设置恢复正常TTL、归档并分析数据、把临时扩容资源回收、更新Runbook并记录优化项以备下次活动使用。