練習 - 自動調整規則
在本練習中,我們將探討設定及觸發自動調整範例應用程式的練習。
規則練習
在您的範例 Azure Spring 應用程式中,當您的應用程式建立時,便已觸發了客戶服務微服務上的擴增動作。
當 tomcat 要求計數平均超過每分鐘 10 個工作階段時,customers-service 應用程式將會相應放大。 觸發自動調整之後,如果要求計數小於或等於平均每分鐘 10 個工作階段,則會相應縮小。
在 Azure 入口網站中檢視自動調整設定
- 在新的網頁瀏覽器索引標籤中,開啟 Azure 入口網站。
- 從頂端的搜尋方塊,搜尋 Azure Spring Apps。
- 在 Azure Spring Apps [概觀] 頁面中,從結果中選取 Azure Spring Apps 執行個體。
- 在左側瀏覽窗格的功能表中,選取 [設定] 底下的 [應用程式] 索引標籤。
- 選取 customer-service 應用程式。 接著,您應該會看到應用程式的 [概觀] 頁面。
- 在頁面左側的功能表中,移至 [設定] 底下的 [相應放大] 索引標籤。
自動調整需求管理有兩個選項:
- 手動調整:維持固定的執行個體計數。 在標準層中,您可以擴增到最多 500 個執行個體。 此值會變更微服務應用程式個別執行中執行個體的數目。
- 自訂自動調整:依據任何計量,依任何排程調整規模。
在 Azure 入口網站中,檢視應用程式的預先設定組態。 下圖顯示自訂自動調整設定,可在 tomcat 要求計數上進行調整。
檢視已完成的自動調整事件
在相應放大設定畫面中,移至 [執行歷程記錄] 索引標籤,以查看最新的調整動作。 索引標籤會以圖形方式顯示 [觀察的容量] 中一段時間的變更,以及每個自動調整動作的記錄。
使用指令碼觸發相應放大動作
您也可以透過網頁瀏覽器或殼層指令碼手動觸發自動調整。
為了測試自動調整規則,我們會在執行個體上產生一些負載。 這種模擬的負載會使自動調整規則相應放大,並增加執行個體數目。 當模擬的負載隨後停止時,自動調整規則即會縮減,並減少執行個體數目。
為了讓您能夠觸發自動調整,我們在用來建立 Azure Spring 應用程式的相同 GIT 存放庫中提供了殼層指令碼。
在 https://shell.azure.com bash 視窗中執行下列命令,以設定 Spring 應用程式服務的執行個體名稱。 使用您在上一個練習中使用的相同 Azure Spring 應用程式服務名稱:
export SPRING_APPS_SERVICE=<spring-apps-instance-name>接下來,在 Bash 視窗中,執行下列命令,以對 Spring Apps customer-service 微服務執行交易:
cd mslearn-autoscale-java sh loadTest.sh您應該會看到將 100 個要求傳送至執行個體的 customers-service 負載測試輸出。
透過網頁瀏覽器手動觸發相應放大動作 (選擇性)
若要手動觸發剛才所建立自動調整規模設定中的相應放大條件,customer-service 微服務必須在 1 分鐘內收到超過 10 個要求。
開啟新的瀏覽器視窗,並導覽至 customer-service 微服務:
https://<your-spring-apps-service>-api-gateway.azuremicroservices.io/api/customer/owners快速連續重新載入該網頁 10 次以上。
檢視相應放大動作
回到原始瀏覽器視窗的 [自動調整] 設定上,選取 [執行歷程記錄] 索引標籤。
您應該會看到反映執行個體計數的圖表。
在數分鐘內,執行個體計數應該會從 1 提高為 2。
在該圖表下,您應該會看到由此自動調整規模設定採取之每個調整規模動作的活動記錄項目。
相應縮小動作
若 customers-service 微服務在 1 分鐘內收到的要求數目少於或等於 10 個,則會觸發自動調整規模設定中的相應縮小條件。
確保不會將任何要求傳送至客戶服務微服務,且您應用程式/服務的瀏覽器視窗已關閉。
觀察執行個體計數。 在幾分鐘內,執行個體計數可能會從 2 降到 1 (請參閱下列重點)。
重要
Azure Spring Apps 可能不會調整規模,因為自動調整功能會嘗試估計其調整規模後的最終狀態為何。 這表示若平均 tomcat 要求計數維持不變,或甚至僅略微下降,自動調整仍須立即再調整 (即使在縮小之後)。