java併發和高併發之項目準備(三)

一、案例環境初始化:講述了通過https://start.spring.io  這個網頁,簡單創建一個spring boot框架,然後將其放在由碼雲代碼託管工具管理的一個項目中,由碼雲進行代碼管理,再通過idea打開項目進行後期創作的過程。藉助幾個工具,將環境搭建起來。

二、案例準備工作,其中提到的幾點值得學習的地方:

1、自定義註解,用於後期方便閱讀,使用到了@Retention(RetentionPolicy.SOURCE) 註解,其中常量RetentionPolicy.SOURCE,在被編譯時就會被忽略,在這裏有點可以爲其他做通用註釋的功能。

2、講述Spring中的@Target(Elementype.TYPE)註解;

三、併發模擬工具:

1、postman :Http請求模擬工具,在併發上並不是很專業,對於開發人員還是比較常見的。

     此處注意學習下它的使用即可。

2、ApacheBeanch (通常叫ab工具):Apache附帶的工具,測試網站性能;

ab 是個命令,最常見簡單的用法如下:

ab  -n  1000  -c  50  http://localhost:8080/test

注: ab 爲固定,命令名稱,相當於 Linux中的 ls 命令;

        -n    後面的數字表示一共發送的請求次數,如上表示一共請求1000次;

       -c      後面的數字,表示併發數量,如上表示同一時刻,可能有50個併發的請求;

        最後加一個網址, 表示要請求訪問的地址;

ab命令可能還有其他參數,此處是基本常用的。

ab沒有可視化界面,在此處簡單說明下

 

註釋:

Concurrency Level :  50     表示: 併發量爲50;

Time taken for tests : 0.355 seconds   表示:測試總共用的時間。

Complete requests :1000   表示:測試總共完成的請求數

Failed requests :   0       表示: 請求失敗的次數

Total transferred  :  136000  bytes    表示:所有請求的響應數據的長度總和。包括每個http響應數據的頭信息和正文的長度。但這裏不包括 http請求數據的長度,僅僅爲web流向用戶的應用層數據長度

HTML transferred :  4000 bytes          表示:所有請求響應的數據中正文數據的總和,也就是減去上一行中提到的頭信息的數據長度。

Requests per second :2816.64[#/sec](mean)     表示:吞吐率與併發數相關,就是上方complete requests  / time taken for tests 比例

Time per request : 17.752[ms](mean)                   表示:用戶平均請求等待時間

Time per request :0.355 [ms](mean,across all concurrent requests)    表示:服務器平均請求等待時間

Transfer rate  :   374.08 [kbytes/sec] received        表示:這些測試中單位時間內從服務器請求的數據長度。計算爲:

                                                                                              Total transferred /  Time taken for tests

3、JMeter:Apache組織開發的壓力測試工具;

     該工具需要安裝,其名稱爲 apache-jmeter-版本號,可進入該目錄的bin 目錄下(Linux類系統),直接運行相關命令。

該工具爲可視化工具:

線程數:虛擬的用戶訪問數量

Ramp-Up  Period (in seconds)  :注意該值,是以秒爲單位

因爲工具功能多,底下可詳細瞭解

 

4、代碼:Semaphore  、CountDownLatch等用代碼模擬併發的場景;

countDownLatch 類一定程度上可以阻攔某些線程的進行;經常用於保證某些方法執行

完成之後進行的處理

 sampore

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章