版权所有,允许转载, 请注明出处(创建金融_玉龙 http://www.weibo.com/u/1872245125)
故障简介:
−
活动即将在
11:00:00
开始
,
系统在
10:57:00
左右流量急剧下降,
尝试访问
首页, 发现无法显示, 多次重试后, 发现首页
HTML
内容有时可以勉强展示, 但是静态资源都无法展示。
−
到
11:15
分之前, 三次尝试重启静态资源服务器, 无法恢复,
11:20
左右系统自动恢复, 流量迅速攀升至系统故障前最高流量的
2
倍以上且平稳度过。
−
事后通过理论分析,和网络排查, 定位故障设为
SSL
加密设备, 故障代码为活动页和合同签署页的自动刷新
JS
设备:
F5 负载均衡设备;
SSL硬件解析设备; 最高并发解析8000
活动前, 已经有几万到十几万客户打开了,活动页。 活动前QPS应该在160以下,即并发在160以下。
活动即将开始时, 已经打开的数十万活动页面, JS定时刷新一下页面。浏览器会并行加载多个资源, 即刷新一个页面会尝试建立多个连接。
高达13万并发连接, 超过活动正常流量峰值的659倍, 接入F5设备, 此时SSL解析设备无法及时响应, 即HTTPS连接无法建立。简单的说,我们给自己来了一次DOS攻击。
其中, 活动页面刷新的时间点采用了本机时间,并在特定情况下会死循环刷新页面, 加重了问题。
总结: 替换SSL解析设备, 下放SSL解析到服务器上, 便于横向扩展。 以后的活动促销时避免JS定时统一刷新,或无限刷新, 避免造成DOS攻击。还可以在活动开始时间上, 故意错开, 让每个用户的活动开始时间随机加上几秒, 让用户实际的活动开始时间错开。