前言
之前寫了個FabricJavaPool
implementation group: 'com.github.samyuan1990', name:'FabricJavaPool', version: '0.0.1'
最近把這個項目放到了mvn上測了一下,測試代碼:
https://github.com/SamYuan1990/fabric-java-spring
測試代碼邏輯
首先通過byfn
啓動Fabric區塊鏈網絡
測試代碼業務邏輯很簡單,在8080上實現http服務器,回覆"Greetings from Spring Boot! "+query a
那麼區別在於第一次我們不加任何cache和Pool直接連接,每次啓動一個連接。
第二次我們使用Pool(FabricJavaPool)
第三次我們在最上邊加個cache
筆記本電腦用jmeter,10個thread測1分鐘。
測試結果
直連
慘不忍睹的直接連接。
直接連接錯誤了。
**46%**的錯誤率
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Home Page | 2510 | 568 | 116 | 162 | 206 | 412 | 64 | 111377 | 46.414% | 17.27770 | 4.17 | 2.00 |
TOTAL | 2510 | 568 | 116 | 162 | 206 | 412 | 64 | 111377 | 46.414% | 17.27770 | 4.17 | 2.00 |
帶Pool
318的TPS,0 error
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Home Page | 19122 | 29 | 28 | 42 | 46 | 51 | 12 | 63 | 0.000% | 318.58849 | 59.73 | 38.27 |
TOTAL | 19122 | 29 | 28 | 42 | 46 | 51 | 12 | 63 | 0.000% | 318.58849 | 59.73 | 38.27 |
帶Pool帶Cache
很粗暴的寫了個cache
Random r = new Random(10);
double d2 = r.nextDouble()* 5;
if(d2>4) {
data = utils.QueryWithPool();
}
else {
data = "90";
}
28510.98407 TPS…
Label | # Samples | Average | Median | 90% Line | 95% Line | 99% Line | Min | Max | Error % | Throughput | Received KB/sec | Sent KB/sec |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Home Page | 1710545 | 0 | 0 | 1 | 1 | 1 | 0 | 520 | 0.000% | 28510.98407 | 5337.74 | 3563.87 |
TOTAL | 1710545 | 0 | 0 | 1 | 1 | 1 | 0 | 520 | 0.000% | 28510.98407 | 5337.74 | 3563.87 |
總結
還是要寫pool和cache。
我們從46%的錯誤率,到了300+的tps最後到了28510TPS…
先提高了正確率,然後提升了95倍的tps.
後記
下一步我要開始給我的pool工程加cache了