由於使用者行為異常,需要定位是哪個使用者頻繁呼叫某乙個介面。
日誌大致格式如下:
10:33:13.412 [dubboserverhandler-10.999.111.888:20880-thread-200] info c.s.f.c.a.serviceexceptionadvice[64] - call method createtoken,input:["0001122798"],return:,cost:7
簡潔方式:
grep "call method getcustbaseinfo" c.log| awk -f"," ''|sort|uniq -c|sort -n
下面寫的比較囉嗦:
查詢出所有呼叫該介面的使用者:
cat c.log |grep 'createtoken'|grep 'data'
可以儲存到檔案
cat c.log |grep 'createtoken'|grep 'data' > tmp.txt
列出客戶編號:
awk -f"input:" ''|sort |uniq > custnocount.txt
每個客戶呼叫次數:
for i in `cat custnocount.txt`
do count=`cat c.log |grep $i |wc -l`
echo "custno:"$i"累計成功請求 "$count" 次"; >> result.txt
done
對結果排序:
sort的一般用法
[root@mail text]# cat sort.txt
aaa:bb:cc
aaa:30:1.6
ccc:50:3.3
ddd:20:4.2
bbb:10:2.5
eee:40:5.4
eee:60:5.1
#將bb列按照數字從小到大順序排列:
[root@mail text]# sort -nk 2 -t: sort.txt
aaa:bb:cc
bbb:10:2.5
ddd:20:4.2
aaa:30:1.6
eee:40:5.4
ccc:50:3.3
eee:60:5.1
寫成乙個指令:
for i in `cat c.log |grep 'createtoken'|grep 'data' |awk -f"input:" ''|sort |uniq`; do count=`cat c.log |grep $i |wc -l`; echo "custno:"$i"累計成功請求 "$count" 次"; done| sort -nk2 -t" "
參考:
介面呼叫次數統計php PHP設計模式 觀察者模式
使用場景 假設專案經理讓我們寫了乙個登陸介面,咔咔擦擦寫完了 我們需要讓專案保持高內聚低耦合,就可以用到觀察者模式 也不是非要,看需求 概念觀察者,觀察者,首先要有個被人觀察的角色,這是唯一的,然後會有無數個觀察者去看她,可以說是一群人在圍觀乙個人,既然有無數個觀眾,那總得有個東西記錄有哪些觀察者,...
限制介面的訪問次數
情景 傳送手機驗證碼或者郵箱驗證碼時限制規則 一分鐘只可以發一次,一天內也有次數限制。以防止惡意訪問,降低伺服器壓力。解決思路 獲取使用者ip位址,判斷此ip是否首次訪問,如果是首次訪問,在redis建立minkey,daykey.並設定minkey過期60s,daykey為86400s,也就是24...
dubbo介面的呼叫
dubbo是乙個分布式服務框架,致力於提供高效能和透明化的rpc遠端服務呼叫方案,以及soa服務治理方案。簡單的說,dubbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有dubbo這樣的分布式服務框架的需求,並且本質上是個服務呼叫的東東,說白了就是個遠端服務呼叫的...