本文介绍如何扩展您的 Azure SignalR 服务实例。 有两种扩展方案:纵向扩展和横向扩展。
- 纵向扩展:获取更多单元、连接、消息等。 可以通过将定价层从“免费”更改为“标准”来纵向扩展。
- 横向扩展:增加 SignalR 单位数。 可以扩展到多达 100 个单位。 可选择的缩放单位有限,针对单一 SignalR 服务实例的单位选项有:1、2、3、4、5、6、7、8、9、10、20、30、40、50、60、70、80、90 和 100 个单位。 如果想扩展到超过 100 个单位,Premium_P2 SKU 提供更强的功能。
应用缩放设置需要几分钟时间。 在极少数情况下,可能需要大约 30 分钟才能应用。 缩放不需要更改代码或重新部署服务器应用程序。
有关单个 SignalR 服务的定价和容量的信息,请参阅 Azure SignalR 服务定价详细信息。
注释
在不同定价层之间缩放 Azure SignalR 服务可能会导致服务停机。 停机时间行为因层组合而异,并在表中汇总。
| 比例场景 | 预计停机时间 |
|---|---|
| 免费↔标准/高级 | 是的 |
| Standard_S1 ↔ Premium_P1 | 否 |
| Premium_P1 ↔ Premium_P2 | 否 |
对于预期停机的缩放方案,由于 公共服务 IP 地址 在缩放作期间发生更改,因此会发生停机。 此 IP 更改通常需要 30-60 分钟 才能全局传播到 DNS 服务器,在此期间,服务可能暂时无法访问。 通常不建议过于频繁地更改定价层。
在 Azure 门户中实现扩大规模
在浏览器中,打开 Azure 门户。
在 SignalR 服务页的左侧菜单中,选择“ 纵向扩展”。
单击更改,然后在弹出边栏中选择标准层。
选择“保存”。
在 Azure 门户中横向扩展
在浏览器中,打开 Azure 门户。
在 SignalR 服务页的左侧菜单中,选择 “横向扩展”。
选择 手动缩放 扇区中的单位。
选择“保存”。
使用 Azure CLI 进行缩放
此脚本将创建 免费 层的新 SignalR 服务资源和新资源组,并将其纵向扩展到 标准 层。
#!/bin/bash
# Generate a unique suffix for the service name
let randomNum=$RANDOM*$RANDOM
# Generate a unique service and group name with the suffix
SignalRName=SignalRTestSvc$randomNum
#resource name must be lowercase
mySignalRSvcName=${SignalRName,,}
myResourceGroupName=$SignalRName"Group"
# Create resource group
az group create --name $myResourceGroupName --location chinaeast2
# Create the Azure SignalR Service resource
az signalr create \
--name $mySignalRSvcName \
--resource-group $myResourceGroupName \
--sku Free_F1 \
--service-mode Default
# Scale up to Standard Tier, and scale out to 50 units
az signalr update \
--name $mySignalRSvcName \
--resource-group $myResourceGroupName \
--sku Standard_S1 \
--unit-count 50
记下为新资源组生成的实际名称。 如果要删除所有组资源,请使用该资源组名称。
整理部署
运行示例脚本后,可以使用以下命令删除资源组以及与其关联的所有资源。
az group delete --name myResourceGroup
比较定价层
有关详细信息(例如每个定价层包含的消息和连接),请参阅 SignalR 服务定价详细信息。
有关每个层中的服务限制、配额和约束表,请参阅 SignalR 服务限制。
使用 Premium_P2 SKU 增强的大型实例支持
新的Premium_P2 SKU 旨在促进高需求方案的广泛可伸缩性。 此 SKU 允许在 100、200、300、400、500、600 之间缩放。 对于单个 SignalR 服务实例,有 700、800、900 和 1000 个单位。 这种增强功能可处理多达 100 万个 并发连接,以满足大规模实时通信需求。
可以使用 Azure 门户或 Azure CLI 将 SKU 纵向扩展到Premium_P2。
Premium_P2层在内部使用不同的体系结构来管理大量基础资源。 因此,相比于较小SKU中的层级,此层的扩展操作可能需要更长时间。
注释
每个区域每个订阅的 SignalR 单位数的默认配额上限为 150 个。 这是一个软限制,可以根据需要增加。 为此,只需提交支持票证以请求调整此配额。
后续步骤
本指南介绍了如何缩放单个 SignalR 服务实例。
Azure SignalR 服务高级层支持自动缩放。
缩放、分片和跨区域方案也支持多个终结点。