教程:缩放在 Service Fabric 网格中运行的应用程序
重要
Azure Service Fabric 网格的预览版已停用。 不允许再通过 Service Fabric 网格 API 进行新的部署。 对现有部署的支持将会持续到 2021 年 4 月 28 日。
有关详细信息,请参阅 Azure Service Fabric 网格预览版停用。
本教程是一个系列中的第二部分。 了解如何手动缩放以前部署到 Service Fabric 网格的应用程序的服务实例数。 完成后,你的前端服务运行三个实例,数据服务运行两个实例。
本系列教程的第二部分将介绍如何:
- 配置所需的服务实例数
- 执行升级
在此系列教程中,你会学习如何:
- 使用模板将应用程序部署到 Service Fabric 网格
- 缩放在 Service Fabric 网格中运行的应用程序
- 升级 Service Fabric 网格中运行的应用程序
- 删除应用程序
Service Fabric 网格当前为预览版。 需同意补充使用条款才可使用预览版。 在正式版 (GA) 推出之前,此功能的某些方面可能会有所更改。
先决条件
在开始学习本教程之前:
如果没有 Azure 订阅,可以在开始前创建免费帐户。
手动对服务进行横向缩放
将应用程序部署到 Service Fabric 网格的一个主要优势是能够轻松地对服务进行横向缩放。此功能应该用于处理服务上的各种数量的负载,或者用于改进可用性。
本教程使用“待办事项列表”示例作为示例,该示例以前已部署,现在应该处于运行状态。 应用程序有两项服务:WebFrontEnd 和 ToDoService。 每项服务在一开始部署时,副本计数为 1。 若要查看 WebFrontEnd 服务的正在运行的副本数,请运行以下命令:
az mesh service show --resource-group myResourceGroup --name WebFrontEnd --app-name todolistapp --query "replicaCount"
若要查看 ToDoService 服务的正在运行的副本数,请运行以下命令:
az mesh service show --resource-group myResourceGroup --name ToDoService --app-name todolistapp --query "replicaCount"
在应用程序资源的部署模板中,每项服务都有一个 replicaCount 属性,该属性可以用来设置所需的服务部署次数。 应用程序由多项服务组成,每项服务都有唯一的 replicaCount 数,这些服务可以一起进行部署和管理。 若要缩放服务副本数,请在部署模板或参数文件中修改每项需要缩放的服务的 replicaCount 值。 然后,升级应用程序。
修改部署模板参数
当模板中有希望在部署应用程序后进行更改的值,或者希望可以选择在每个部署的基础上进行更改时(如果计划重用此模板进行其他部署),最佳做法是参数化这些值。
以前,应用程序使用 mesh_rp.windows.json 部署模板和 mesh_rp.windows.parameter.json 参数文件进行部署。
在本地打开 mesh_rp.windows.parameter.json 参数文件,将 frontEndReplicaCount 值设置为 3,将 serviceReplicaCount 值设置 为 2:
"frontEndReplicaCount":{
"value": "3"
},
"serviceReplicaCount":{
"value": "2"
}
保存对参数文件所做的更改。 frontEndReplicaCount 和 serviceReplicaCount 参数在 mesh_rp.windows.json 部署模板的 parameters 节中声明:
"frontEndReplicaCount":{
"defaultValue": "1",
"type": "string"
},
"serviceReplicaCount":{
"defaultValue": "1",
"type": "string"
}
WebFrontEnd 服务的 replicaCount 属性反映 frontEndReplicaCount 参数,ToDoService 服务的 replicaCount 属性反映 serviceReplicaCount 参数:
"services": [
{
"name": "WebFrontEnd",
"properties": {
"description": "WebFrontEnd description.",
"osType": "Windows",
"codePackages": [
{
...
}
],
"replicaCount": "[parameters('frontEndReplicaCount')]",
"networkRefs": [
{
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'todolistappNetwork')]"
}
]
}
},
{
"name": "ToDoService",
"properties": {
"description": "ToDoService description.",
"osType": "Windows",
"codePackages": [
{
...
}
],
"replicaCount": "[parameters('serviceReplicaCount')]",
"networkRefs": [
{
"name": "[resourceId('Microsoft.ServiceFabricMesh/networks', 'todolistappNetwork')]"
}
]
}
}
],
修改模板以后,请升级应用程序。
升级应用程序
应用程序正在运行时,可以将其升级,方法是重新部署模板和更新的参数文件:
az mesh deployment create --resource-group myResourceGroup --template-file c:\temp\mesh_rp.windows.json --parameters c:\temp\mesh_rp.windows.parameters.json
这样就会开始应用程序的滚动升级,你会看到服务实例数在数分钟内增加。 若要查看 WebFrontEnd 服务的正在运行的副本数,请运行以下命令:
az mesh service show --resource-group myResourceGroup --name WebFrontEnd --app-name todolistapp --query "replicaCount"
若要查看 ToDoService 服务的正在运行的副本数,请运行以下命令:
az mesh service show --resource-group myResourceGroup --name ToDoService --app-name todolistapp --query "replicaCount"
后续步骤
本教程的此部分介绍了如何:
- 配置所需的服务实例数
- 执行升级
转到下一教程: