ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

qps突然提升100倍怎么办?

qps突然提升100倍怎么办? 回答优先保证可用然后再排查问题。所以第一时间应该是紧急开启网关限流和核心降级关闭非核心功能防止流量打垮系统引发雪崩。然后就是扩容可以通过K8S扩容服务实例、中间件节点快速提升系统承载力。同时实时监控CPU、内存、数据库指标定位性能瓶颈。针对性进行优化最后做事后复盘然后做长期架构优化。思路优先保证可用。第一是要先紧急限流、降级。然后进行扩容排查瓶颈。需要做限流、降级、缓存、流量削峰方案避免盲目扩容导致系统雪崩。事后需要复盘优化架构提升稳定性。一、紧急止损优先保证可用1开启网关全局限流基于sentinel / gateway紧急调低QPS阈值拦截超额流量避免打垮服务2开启业务降级关闭非核心功能日志上报统计、推荐、弹窗仅保留核心业务链路3开启熔断防止级联故障4监控告警二、快速扩容提升承载力1应用服务扩容k8s一件扩容prod节点翻倍增加服务实例提升接口吞吐量2中间件扩容redis、mq节点、提升缓存和消息队列吞吐量3数据库扩容开启读写分离新增从库分担查询压力临时优化慢sql4CDN扩容静态资源加急加速拦截前端流量三、精准优化瓶颈根治卡顿1CPU瓶颈排查死循环频繁GC线程阻塞优化耗时代码2内存瓶颈排查内存泄漏、大对象创建、调整JVM参数3 DB瓶颈优化慢sql新增索引、缓存热点数据4网络瓶颈限流无效请求压缩传输数据5缓存瓶颈优化缓存命中率解决缓存穿透/击穿/雪崩/热key等问题这些问题如何排查四、流量治理1用户维度限流单用户QPS限制防止个别用户刷流量2IP限流、黑名单拦截恶意流量3热点数据隔离单独部署热点资源避免全局影响4MQ批量消费、异步削峰平稳消化堆积流量五长期架构优化事后治理1压测摸清系统极限承载力2架构升级增加多级缓存、分库分表、服务隔离3自适应扩容开启K8S HPA自动扩缩容应对突发流量4阈值预调提前设置合理限流阈值预留流量冗余5复盘优化梳理流量突增原因优化薄弱环节首先需要做全链路压测摸清系统极限承载力预留流量冗余。然后开启K8S自动扩缩容实现流量自适应完善监控告警体系得以提前预判流量趋势然后优化薄弱接口和慢sql升级架构增加多级缓存和流量隔离从根源提升系统稳定性六、问题1、流量突增后数据库CPU打满如何应急处理1临时关闭非核心数据库读写接口2新增临时索引优化慢sql3) 热点查询全量缓存至本地内存、redis绕过数据库查询4开启数据库限流拦截高频低效请求5读写分离查询流量全部切至从库主库负责写入2、如何提前预判突发流量避免被动应急1搭建流量监控大盘实时监控QPS、RT、异常率设置梯度告警2基于历史流量数据做趋势预测提前扩容3重大活动提前全链路压测预留3-5倍流量冗余4开启自动扩缩容实现流量自适应3、扩容后流量还是扛不住怎么办精准定位瓶颈。如果是数据库那么可以缓存热点数据、读写分离、优化慢sql。如果是缓存就解决热key扩容redis集群如果是单机瓶颈那么需要单独隔离部署、专项限流。同时进一步加大降级力度只保留核心业务流程。优先保障核心用户可用4、如何区分正常业务流量和恶意刷单流量通过流量画像判断正常流量用户分散、IP分散、请求间隔正常恶意流量集中单一IP高频请求、无设备指纹、请求参数统一。针对恶意流量直接拉黑IP、设备、精准拦截不影响正常用户正常业务流量通过扩容优化限流平稳承载。
返回列表