前提:docker安裝了nginx,項目使用springcloudgateway作為網關
1.nginx測試
啟動linux伺服器,啟動docker,啟動nginx,到windows上通路nginx的首頁,成功後就在jmeter中輸入相應内容,啟動測試:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLmFDNkhjZzI2N4AjM2ITZ4YTNjRjNzkTOlBTYjdzN1QzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
linux中輸入docker stats,監控docker性能變化
可以看到大部分CPU的使用都在nginx上,回看Jemter
平均響應時間6毫秒,99%的響應時間在94毫秒内傳回,可以看出nginx的性能非常不錯
2.網關測試
依然是Jemeter,我的網關端口号是88。然後别忘記先禁用上一個測試内容
再啟動jvisualvm
由上圖可以看出,網關對CPU的使用率也是非常高
同時,因為Eden Space設定的較小,垃圾回收也是有些頻繁
回看Jmeter,可以看出網關性能也是較優秀的
3.簡單測試
controller中加入一個簡單測試,重新開機該子產品:
@ResponseBody
@GetMapping("/hello")
public String hello(){
return "hello";
}
Jemeter中加入新測試
可以看出,在沒有經過網關和nginx,操作資料庫的情況下,性能很優秀
4.網關加簡單服務
網關中加入對hello的斷言,重新開機網關
Jmeter中加入新測試:
可以看出,性能下降很多
中間件越多,性能損失越大,大多都損失在網絡互動上
5.nginx+網關+簡單服務
需要提前配置好nginx和網關和服務之間的關系,比如我這邊輸入配置好的URL直接通路:
繼續建立新測試
可以看出,性能繼續暴降: