在服務數量增多到必定程度,出問題的可能性愈來愈大,如今各類常見的架構手段,高可用手段都是爲了提高系統的可用性,給用戶提供更好的體驗。而全鏈路壓測則至關於對服務進行一次體檢,瞭解當前系統的情況html
定義:基於線上環境和實際業務場景,經過模擬海量的用戶請求,來對整個系統鏈路進行壓力測試。ios
目的:git
壓測極限標準github
爲模擬更真實的環境,壓測機器與線上機器同等配置,仿照線上機器的部署狀況部署。壓測數據儘量採用線上真實數據。數據庫
複用線上環境壓測,在低峯期,好比凌晨3點鐘,回放讀請求,寫請求沒法壓測,由於寫請求會致使數據污染。服務器
壓測能夠採用本地平常環境,或者採用線上環境:session
平常環境:要求低,若是想要效果然實,能夠構建與線上服務如出一轍的配套設施,缺點是成本高架構
線上環境:徹底採用線上環境,測量機器的抗壓能力,流量逐漸的分配到愈來愈少的服務器上,觀察10分鐘以上,直到服務器處理的極限。app
流量複用工具:TCPcopytcp
方案一很難對整個集羣的進行壓測,容易以偏概全,沒法評估系統的真實性能。若是想作全鏈路壓測:
儘量構造真實數據
壓測線上真實環境
核心技術
壓測標識透傳
壓測服務隔離,不能由於壓測影響正常服務
壓測數據隔離,不影響真實數據
使用影子表進行數據隔離,線上使用同一個數據庫,只是在寫入數據的時候將數據寫入到另一張「影子表」中。
附錄中給了不少互聯網大廠的真實案例,能夠一塊兒學習