欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

教你如何精準(zhǔn)統(tǒng)計出你的接口"QPS"

 更新時間:2021年08月11日 10:20:17   作者:科比不來it  
今天小編就為大家分享一篇關(guān)于QPS的精準(zhǔn)計算方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

QPS是什么

我們先回憶一下,QPS的概念如下所示:

QPS(Query Per Second):每秒請求數(shù),就是說服務(wù)器在一秒的時間內(nèi)處理了多少個請求。

那我們怎么估出每秒鐘能處理多少請求呢?

OK,用日志來估計!那日志怎么記錄呢,細(xì)分下來,有兩種方式。

方式一:自己在接口里記錄

這種方式指的是在你的接口里,日志記錄了能體現(xiàn)該接口特性的,并具有唯一性的字符串!

例如,下面這一段代碼

@RestController 
@RequestMapping("/home") 
public class IndexController {
 //省略
 @RequestMapping("/index") 
 String index() { 
 logger.info("渣渣煙");
 return "index"; 
 } 
} 

假設(shè)現(xiàn)在我要統(tǒng)計index這個接口的QPS!

OK,什么叫能體現(xiàn)該接口特性的字符串呢!就像上面的"渣渣煙"這個字符串,只在index這個接口里出現(xiàn)過,沒在其他其他接口里出現(xiàn)過!因此,只要統(tǒng)計出"渣渣煙"這個字符串在日志里的出現(xiàn)次數(shù),就能知道該接口的請求次數(shù)!

什么叫具有唯一性的字符串呢!所謂唯一性,指的是"渣渣煙"這個字符串,在這個接口的一次調(diào)用流程中,只出現(xiàn)一次!如果出現(xiàn)兩次,就會導(dǎo)致到時候統(tǒng)計出來的次數(shù)會多一倍,所以盡量選擇具有唯一性的字段!

方式二:利用tomcat的access log

如果你的日志里沒有我上面提到的字段。OK,那就用tomcat自帶的access log功能吧!

因為我平時內(nèi)置的tomcat比較多,指定下面兩個屬性即可

server.tomcat.accesslog.directory
設(shè)定log的目錄,默認(rèn): logs
server.tomcat.accesslog.enabled
是否開啟access log,默認(rèn): false

此時,你訪問一次/home/index地址,會有下面這樣日志

127.0.0.1 - - [19/Aug/2019:23:55:27 +0800] “POST /home/index HTTP/1.1” 200 138
那么,你就可以根據(jù)日志中,該記錄的出現(xiàn)次數(shù),統(tǒng)計index接口的QPS。

實戰(zhàn)

假設(shè),你這會日志已經(jīng)拿到手了,名字為xxx.log。

假設(shè)日志內(nèi)容如下

//省略,都長差不多,貼其中一條就行
0:0:0:0:0:0:0:1 - - [27/Dec/2018:20:41:57 +0800] "GET /mvc2/upload.do HTTP/1.1" 404 949 http-bio-8080-exec-5 43
//省略

這個時候,你執(zhí)行一串命令長下面這樣的,進(jìn)行統(tǒng)計就行!

cat xx.log |grep 'GET /mvc2'|cut -d ' ' -f4|uniq -c|sort -n -r 

出來等結(jié)果就是

20 [27/Dec/2018:20:40:44
11 [27/Dec/2018:20:47:58
10 [27/Dec/2018:20:47:42
1 [27/Dec/2018:20:41:57

然后你就知道,原來在20:40:44 分。。這個接口的QPS最高,達(dá)到了驚人的20QPS!

現(xiàn)在,來講一下命令什么意思!

cat xxx.log : 讀文件內(nèi)容

grep ‘GET /mvc2' : 將文件內(nèi)容按照GET /mvc2 進(jìn)行過濾

cut -d ' ' -f4 : 過濾出來的內(nèi)容按照空格進(jìn)行分割,取第四列內(nèi)容

uniq -c : 每列旁邊顯示該行重復(fù)出現(xiàn)的次數(shù)

sort -n -r : 依照數(shù)值的大小排序

那么,如果是其他日志格式,無外乎 ”cut語句“的處理不同而已,道理類似!此法可以估算出單機(jī)的某接口的 “QPS” 是多少!

估算

我們現(xiàn)在估計出了單機(jī)的QPS。接下來,估算集群的QPS。

這就要根據(jù)負(fù)載均衡的策略來估計!

比如,你部署了32臺機(jī)器,負(fù)載均衡的策略恰巧為輪詢,那集群的QPS就是單機(jī)的QPS乘32就好了。

所以,根據(jù)具體的策略,來估計整個集群的QPS多大!一般有2000qps已經(jīng)是很高的了。

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • JavaFx 實現(xiàn)按鈕防抖功能

    JavaFx 實現(xiàn)按鈕防抖功能

    最近Sun公司推出了JavaFX框架,使用它可以利用JavaFX編程語言來開發(fā)富互聯(lián)網(wǎng)應(yīng)用程序(RIA),這篇文章主要介紹了JavaFx 實現(xiàn)按鈕防抖功能,需要的朋友可以參考下
    2022-01-01
  • 教你利用SpringBoot寫一個屬于自己的Starter

    教你利用SpringBoot寫一個屬于自己的Starter

    如果我們將可獨(dú)立于業(yè)務(wù)代碼之外的功配置模塊封裝成一個個starter,復(fù)用的時候只需要將其在pom中引用依賴即可,SpringBoot為我們完成自動裝配,簡直不要太爽,這篇文章主要給大家介紹了關(guān)于如何利用SpringBoot寫一個屬于自己的Starter,需要的朋友可以參考下
    2022-03-03
  • java 多線程-鎖詳解及示例代碼

    java 多線程-鎖詳解及示例代碼

    本文主要介紹 Java 多線程鎖的基礎(chǔ)知識,這里整理了相關(guān)資料及示例代碼有興趣的小伙伴可以參考下
    2016-09-09
  • java?常規(guī)輪詢長輪詢Long?polling實現(xiàn)示例詳解

    java?常規(guī)輪詢長輪詢Long?polling實現(xiàn)示例詳解

    這篇文章主要為大家介紹了java?常規(guī)輪詢長輪詢Long?polling實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • 詳解Java Web項目啟動執(zhí)行順序

    詳解Java Web項目啟動執(zhí)行順序

    這篇文章主要介紹了詳解Java Web項目啟動執(zhí)行順序,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Java反射機(jī)制詳解_動力節(jié)點Java學(xué)院整理

    Java反射機(jī)制詳解_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了Java反射機(jī)制的相關(guān)資料,主要包括反射的概念、作用
    2017-06-06
  • java外部類與內(nèi)部類的關(guān)系詳解

    java外部類與內(nèi)部類的關(guān)系詳解

    本文詳細(xì)講解了java外部類與內(nèi)部類的關(guān)系,用代碼演示了外部類調(diào)用內(nèi)部類的方法。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 基于Java實現(xiàn)XML文件的解析與更新

    基于Java實現(xiàn)XML文件的解析與更新

    配置文件可以有很多種格式,包括?INI、JSON、YAML?和?XML。每一種編程語言解析這些格式的方式都不同。本文將通過Java語言實現(xiàn)XML文件的解析與更新,需要的可以參考一下
    2022-03-03
  • Spring+Quartz實現(xiàn)動態(tài)任務(wù)調(diào)度詳解

    Spring+Quartz實現(xiàn)動態(tài)任務(wù)調(diào)度詳解

    這篇文章主要介紹了Spring+Quartz實現(xiàn)動態(tài)任務(wù)調(diào)度詳解,最近經(jīng)?;趕pring?boot寫定時任務(wù),并且是使用注解的方式進(jìn)行實現(xiàn),分成的方便將自己的類注入spring容器,需要的朋友可以參考下
    2024-01-01
  • 圖解Java經(jīng)典算法歸并排序的原理與實現(xiàn)

    圖解Java經(jīng)典算法歸并排序的原理與實現(xiàn)

    歸并排序是建立在歸并操作上的一種有效的排序算法。該算法是采用分治法(Divide?and?Conquer)的一個非常典型的應(yīng)用。本文將通過動圖詳解歸并排序的原理及實現(xiàn),需要的可以參考一下
    2022-09-09

最新評論