spring boot架構的第一個穩定版本是在2014年由pivotal釋出的,該架構的宗旨在于為基于spring的web應用提供快速設計開發,并追求小而美、約定勝于配置、快速開發、自包含且便捷。spring boot目前開發中的版本是1.4。
上一篇文章“在阿裡雲容器服務上建立第一個spring boot應用”,講述了如何通過maven的docker plugin上傳鏡像到阿裡雲的容器hub,并通過阿裡雲的容器服務快速在雲環境建立應用。本文将描述下,如果在阿裡雲環境裡繼續對這個web應用進行壓測,下面我會按照4個步驟進行介紹:
第一步:評估應用的架構
第二步:評估壓測的架構
第三步:配置壓測任務
第四步:檢視壓測結果
上一篇我們通過阿裡雲容器服務給這個sping boot服務配置了一條路由規則:
容器端口為8080,域名字首為spring-boot。容器服務會自動生成一個測試域名‘spring-boot.<cluster_id>.<region_id>.alicontainer.com’
當一個request請求這個域名時會經過以下幾次轉發:
這個域名的dns指向叢集的負載均衡slb的ip。
slb會監聽80端口的請求并轉發到叢集内的每台雲伺服器的80端口。
而每台雲伺服器裡面有一個系統的容器acs-routing,會負責将伺服器的80端口上指定域名的請求轉發到指定容器的内部8080端口。
以下是應用的架構簡圖:

我們回到容器服務的控制台記錄下幾個資訊,後續會再用到:
應用的域名:(應用清單->服務清單tab->服務詳情的通路端點 http://spring-boot.cfe5de77bd7a4474c826e8465930fae75.cn-shenzhen.alicontainer.com)
叢集的負載均衡slb:(叢集清單->更多操作->負載均衡管理->負載均衡詳情的id 1529d3bd5cd-cn-shenzhen-st3-a01)
叢集的雲伺服器名稱清單:(叢集清單->叢集名稱的連結展開)
首先我們需要對spring boot的使用者通路場景進行評估,經過拍腦袋之後,我們決定以10個并發對首頁進行壓測,看看能否抗的住,主要觀察幾個名額:首頁的tps、rt,伺服器的cpu、load。最常見的方式就是搞一個httpload、jmeter壓壓,幸運的發現阿裡雲已經提供了類似的能力。我們決定通過“雲監控”和“性能壓測”兩個産品來試試。
以下是壓測的架構簡圖:
壓測方案分為兩部分:
通過雲監控采集伺服器的監控資料(免費開通雲監控->雲服務監控->ecs監控清單->篩選第一步中的2台伺服器,“點選安裝”ecs插件)
在性能測試産品裡綁定壓測的ecs和slb(免費開通性能測試企業版->測試環境->雲内機器)
下面開始配置壓測任務
點選上圖的新增腳本
設定腳本名:perf-springboot
添加一個事務:事務名稱(testperf),請求連結(http://spring-boot.cfe5de77bd7a4474c826e8465930fae75.cn-shenzhen.alicontainer.com/),請求類型(get)
點選儲存
選擇腳本名
設定場景名:perf-springboot
設定并發使用者數:10
點選新增任務
設定任務名:perf-springboot
設定持續時間:10分鐘
設定施壓叢集:深圳
選擇監控機:綁定之前深圳叢集的兩台機器
綁定場景:綁定上一步的測試場景
點選确認
點選執行
休息10分鐘回來~
檢視壓測結果
檢視tps資料
檢視rt資料
檢視伺服器的cpu資料