大型互聯網應用經常要處理流量高峯問題,這也是我所負責業務經常要面對的事情,比如遇到一個熱點事件、策劃一個活動或者push一個頁面,訪問的驟增帶來讀寫流量的驟增,對應每個模塊都面臨考驗,那麼有哪些方法可以做到流量削峯或者說流量削峯要從哪幾個方面考慮呢,說下我的總結:
1、系統基於微服務的架構設計,彈性擴展瓶頸模塊服務器資源;
2、接入層以及各微服務模塊極大的用好cache,增加QPS,從而加大整個集羣的吞吐量;
3、必要的模塊間使用消息隊列通信,進行模塊異步解耦,訪問量上來後,使用時間成本換取業務能夠正常服務;
4、各服務模塊對自身負責的同時,要做好後端依賴有效調用的判斷,做到向上遊模塊所做的調用都是必要的調用,無冗餘或無效的調用;
5、劃分好動靜資源,靜態資源使用CDN進行服務分發。
補 充:
6、在可行的情況下,做好冷熱分離,對能標記區分出來的熱資源,單獨分配資源處理,以便不影響其他正常訪問請求的資源。
在資源有限的情況下,做好各模塊的降級預案,再從這6個方面多做努力,高峯期服務集羣的流量會做到及好提升的。
自建個人原創站運維網咖社(www.net-add.com),新的博文會在網咖社更新,歡迎瀏覽。