士兵馬老師Golang全鏈路開發(fā)工程師全棧
基于業(yè)務模型實現
這個是一種比較常用的方式。首先要對公司業(yè)務模型進行梳理,也就是說對公司的業(yè)務鏈路進行梳理。這里的業(yè)務鏈路可能會比較復雜,不是像很多案例中到的了就非常流行暢的一條鏈路,中間很有可能會出現各種各樣的支路。如果圖圖形化展示的話,某一條鏈路應該就是一個樹形結構。樹形結構的開始是用戶的入口頁一般就是入口頁面的登陸,或者說是首頁接口。樹形結構的右側是用戶的出口,這里根據業(yè)務模型不同,用戶的出口會非常的多,所以大多數來時候來講,這就是一個分叉的樹形結構。
要對這樣的流量模型進行實現。是比較困難的。首先要梳理出這樣的業(yè)務模型,就不太容易,再加上接口的相互調用啊,數據之間的相互依賴又可能是復雜程度增加一個量級。所以一般的實現方式就是做歸攏。將比較復雜的樹形結構簡單化,或者干脆將以個業(yè)務聯絡分解成n個列有鏈路。然后分別實現。最終將流量匯聚,就變成了整個業(yè)務鏈路的流量模型實現。
在業(yè)務模型實現這個方向,各家都有不同的實現方式啊,基本上就分為工具以及腳本實現。我自己不怎么用工具做過接口的性能測試,全都是使用java和groovy腳本去實現的。首先,我會實現一個基于接口的業(yè)務測試框架,將每一個接口封裝成一個方法。接口的參數即是這個方法的參數。然后將每一個用戶封裝成一個對象。將用戶的各種信息變成這個對象的屬性。然后用戶在請求不同的接口的時候對用戶的屬性進行賦值這樣就達到了一個參數傳遞的目的。然后通過調用不同的方法,我們就可以實現對不同接口的請求。通過控制參數或者說接口請求的頻率,我們就可以達到控制當前用戶。在整個業(yè)務鏈的走向。
標簽: