一次网关事故的总结
本文是记录2015年的一次线上事故,引发的对系统架构和性能的思考,以及如果考虑系统容灾和降级的问题。在大流量高并发下的互联网环境下,如何做到系统稳定,不被异常流量击垮,是我等软件人需要思考和不断优化改造的目标。
问题来了
记得是一个周六的早上,手机就开始不停的震动,拿起一开,是洪水般的报警短信,大概印象记录如下:
- 网关系统报出性能报警,各种接口超时
- 网关系统报出方法可用率报警,统计网关调用量峰值 190w+/min
- Jimdb(redis)出现 failover 主从切换报警,而且相当频繁
- Jimdb 出现 Connection Lost 报警
- 联系 dba 对 Jimidb 进行扩容,并调大连接数
- Jimdb 恢复
- 网关系统 CPU 使用率飙升,服务器出现宕机
- 对 Jstack 进行分析,发现 youngGc 异常频繁
- 通过对 Jmap 进行分析,发现有 sql 会对 mysql 进行全表扫库
- ...
网关系统是对外提供 API 服务调用的系统,对使用资源进行监控发现:
- 网关日志 JMQ 积压 8亿+
- 网关日志 ES 容量 2T
This chapter requires login to view full content. You are viewing a preview.
Login to View Full Content