大型互联网应用经常要处理流量高峰问题,这也是运维所负责业务经常要面对的事情,比如遇到一个热点事件、策划一个活动或者push一个页面,访问的骤增带来读写流量的骤增,对应每个模块都面临考验,那么有哪些方法可以做到流量削峰或者说流量削峰要从哪几个方面考虑呢,总结如下:
1、系统基于微服务的架构设计,弹性扩展瓶颈模块服务器资源;
2、接入层以及各微服务模块极大的用好cache,增加QPS,从而加大整个集群的吞吐量;
3、必要的模块间使用消息队列通信,进行模块异步解耦,访问量上来后,使用时间成本换取业务能够正常服务;
4、各服务模块对自身负责的同时,要做好后端依赖有效调用的判断,做到向上游模块所做的调用都是必要的调用,无冗余或无效的调用;
5、划分好动静资源,静态资源使用CDN进行服务分发。
补 充:
6、在可行的情况下,做好冷热分离,对能标记区分出来的热资源,单独分配资源处理,以便不影响其他正常访问请求的资源。
在资源有限的情况下,做好各模块的降级预案,再从这6个方面多做努力,高峰期服务集群的流量会做到及好提升的。