流量回放平台
流量回放
1.簡介
流量回放系統,利用生產上現有真實流量進行鏡像,原始流量依然回到生產環境的真實服務器,流量的鏡像拷貝會分發到集群外的測試服務器上,在測試服務器上可以實現不同版本的功能測試,或者加壓10倍進行性能壓測。
流量回放系統的工作原理如下圖:
原理:所使用真實的線上流量進行線下回放測試,提升研發效率、保障代碼質量,進而減少事故
背景:隨著微服務架構的普及和應用,一個復雜的單體服務通常會被拆分成多個小而美的微服務。微服務帶來的問題:需要維護的服務數變多,服務之間RPC(遠程過程調用:remote procedure call)調用次數增加。手寫單測會因為復雜的業務邏輯以及復雜的服務調用需要mock多個下游服務
2.方案
日志采集
通過logstash工具從應用容器拉取日志信息,可以根據filter、tags來篩選
數據傳輸
通過kafka等消息隊列將獲取的日志數據傳輸進行下一步處理
數據處理
從消息隊列中消費日志數據,通過storm數據處理系統從日志信息中獲取到想要的數據,比如從日志中獲取接口的req
數據轉存
通過hadoop\mysql\hive對處理的數據進行存儲,第一輪一般是原始數據,后面可以用mapreduce再次處理,知道得到想要的數據再存儲到具體的磁盤中
ELK
elasticsearch+logstash+kibana(前端開源框架)
壓測
針對錄制的流量進行處理,除敏、渲染、隔離、熔斷,得到符合指標的流量,利用這些流量針對接口服務做壓測服務,模擬線上請求
全鏈路壓測核心點
2、日志隔離,壓測的日志和生產的日志隔離
3、風險開關,流量瓶頸時設置黑白名單控制流量
4、數據隔離,影子庫
全鏈路壓測關注指標
3.使用說明
1.新建采集任務
?
選擇對應應用,回放時間可以選擇采集完立即回放/手動進行回放(尋找合適時間節點進行回放),開始采集時間設置(一般為應用線上部署成功后開始采集,采集對應線上回歸接口(http/dubbo)請求),持續采集時間一般為30分鐘,最大采集數量一般為10W(由于我們服務線上訪問量比較大)
2.流量回放
?
回放前確保詳情采集的dubbo接口和http接口參數和返回是否都正常采集到了,是否有外部http接口沒有采集到,怕會造成影響
點擊采集完成任務的回放,可以新建回放任務,選擇對應分支代碼,最大并發數任意選擇。
3.分析
?
回放任務完成后可以查看對應詳情,查看異常數據和系統錯誤,查看接口請求的鏈路情況以及日志,分析分支代碼錯誤的影響,提高研發效率。減少線上問題的發生。
總結
- 上一篇: javase (2020) 老杜专属da
- 下一篇: 一个财务的职场感悟,走出瓶颈