练习 - 自动缩放规则
在本练习中,我们将练习如何设置和触发示例应用程序的自动缩放。
规则练习
在示例 Azure Spring Apps 应用程序中,该应用程序在创建时已在客户服务微服务上触发了横向扩展操作。
Tomcat 请求计数平均每分钟超过 10 个会话时,customers-service 应用将横向扩展。 触发自动缩放后,如果请求计数平均每分钟小于或等于 10 个会话,它会进行横向缩减。
在 Azure 门户中查看自动缩放设置
- 在新的 Web 浏览器选项卡中,打开 Azure 门户。
- 在顶部搜索框中,搜索“Azure Spring Apps”。
- 从 Azure Spring Apps 的“概述”页的结果中选择你的 Azure Spring Apps 实例。
- 在左侧导航窗格上菜单中的“设置”下选择“应用”选项卡。
- 选择“customers-service”应用程序。 然后会看到应用程序的“概览”页。
- 在页面左侧的菜单的“设置”下,转到“横向扩展”选项卡。
自动缩放需求管理有两个选项:
- 手动缩放:保持固定的实例计数。 在“标准”层中,最多可横向扩展到 500 个实例。 此值更改微服务应用程序的单独运行实例的数目。
- 自定义自动缩放:根据任何指标按任何计划进行缩放。
在 Azure 门户中,查看应用程序的预安装配置。 下图显示了用于对 tomcat 请求计数进行缩放的“自定义”自动缩放设置。
查看已完成的自动缩放事件
在“横向扩展”设置屏幕中,转到“运行历史记录”选项卡以查看最新的缩放操作。 该选项卡以图形方式显示观察到的容量随时间的变化,以及每个自动缩放操作的日志。
使用脚本触发横向扩展操作
还可以通过 Web 浏览器或 shell 脚本手动触发自动缩放。
为了测试自动缩放规则,我们将在实例上生成一些负载。 这种模拟负载会导致自动缩放规则横向扩展,增加实例数。 当模拟负载停止时,自动缩放规则会横向缩减,减少实例数。
为了使你能够触发自动缩放,我们在你用来创建 Azure Spring Apps 应用程序的同一个 GIT 存储库中提供了一个 shell 脚本。
通过在 https://shell.azure.com bash 窗口中运行以下命令,设置 Spring Apps 服务的实例名称。 使用在上一练习中使用的同一 Azure Spring Apps 服务名称:
export SPRING_APPS_SERVICE=<spring-apps-instance-name>
接下来,在 bash 窗口中运行以下命令,针对 Spring Apps customers-service 微服务执行事务:
cd mslearn-autoscale-java sh loadTest.sh
你将看到 customers-service 负载测试的输出,它会将 100 个请求发送到实例。
通过 Web 浏览器手动触发横向扩展操作(可选)
若要手动触发所创建的自动缩放设置中的横向扩展条件,customers-service 微服务在不到 1 分钟内必须有 10 个以上的请求。
打开一个新的浏览器窗口,并导航到 customers-service 微服务:
https://<your-spring-apps-service>-api-gateway.azuremicroservices.io/api/customer/owners
连续重载页面 10 次以上。
查看横向扩展操作
返回原始浏览器窗口,在“自动缩放”设置中选择“运行历史记录”选项卡。
应会看到反映实例计数的图表。
几分钟后,实例计数应从 1 增加到 2。
在图表下,应该有此自动缩放设置执行的每个缩放操作的活动日志条目。
横向缩减操作
如果在 1 分钟的时间内对 customers-service 微服务的请求少于或等于 10,将触发自动缩放设置中的横向缩减条件。
确保未向 customers-service 微服务发送请求,并且已关闭应用/服务的浏览器窗口。
观察实例计数。 几分钟后,实例计数可能会从 2 降到 1 (请参阅以下要点)。
重要
Azure Spring Apps 可能无法缩放,因为自动缩放会尝试估计其缩放后的最终状态。 这意味着,如果平均 tomcat 请求数保持不变,甚至只下降了很小一部分,自动缩放就不得不立即再次进行缩放。