自动纵向扩展 Azure 事件中心吞吐量单位(标准层)

创建标准层事件中心命名空间时,指定吞吐量单位 (TU) 数。 以后使用量上升时,这些 TU 可能不够。 发生这种情况时,可以手动增加分配给命名空间的 TU 数。 但是,最好让事件中心根据工作负载自动增加(扩充)TU。

事件中心的“自动扩充”功能通过增加 TU 数进行自动纵向扩展,以便满足使用量需求。 增加 TU 可防止出现数据流入或数据流出速率超过分配给命名空间的 TU 允许值时的限制场景。 当负载的增加超过最小阈值时,事件中心服务会增加吞吐量,不会因服务器繁忙错误导致任何请求失败。

注意

目前仅在标准层中支持自动扩充功能。

自动扩充在标准层中的工作原理

事件中心流量由 TU(标准层)控制。 有关每个 TU 的入口和出口速率等限制,请参阅事件中心配额和限制。 利用自动扩充,可从选择的最少所需 TU 开始。 然后此功能会自动将所需 TU 增加到最大值,具体取决于增加的流量。 自动膨胀具有以下优势:

  • 高效的缩放机制,可从少量开始并随流量增长而增加。
  • 自动增加到指定上限,没有限制问题。
  • 更好地控制缩放,因为你可控制缩放的时间和程度。

注意

当流入或流出速率低于限制时,自动扩充不会自动减少 TU 数。

在命名空间上启用自动膨胀

可以使用 Azure 门户Azure 资源管理器模板在标准层事件中心命名空间上启用或禁用自动扩充。

使用 Azure 门户

在 Azure 门户中,可以在创建标准事件中心命名空间时,或创建命名空间后启用该功能。 还可以设置命名空间的 TU 并指定最大 TU 限制

创建事件中心命名空间时,可启用自动扩充功能。 下图显示了如何为标准层命名空间启用自动扩充功能,以及如何配置开始时的 TU 和 TU 的最大数量。

Screenshot of enabling auto inflate at the time event hub creation for a standard tier namespace

启用此选项后,可从少量 TU 开始并随所需使用量的增长而纵向扩展。 扩充的上限不会立刻影响定价,定价取决于每小时使用的 TU 量。

若要启用自动扩充功能并修改其现有命名空间,请执行以下步骤:

  1. 在“事件中心命名空间”页上,选择左侧菜单“设置”下的“缩放” 。

  2. 在“缩放设置” 页上,选中“启用”复选框 (如果未启用自动缩放功能)。

    Screenshot of enabling auto-inflate for an existing standard namespace

  3. 输入吞吐量单位的最大数目或使用滚动条设置该值。

  4. (可选)在此页顶部更新吞吐量单位的最小数目。

注意

当应用自动膨胀配置以增加吞吐量单位时,事件中心服务会发出诊断日志,提供有关为何以及何时增加吞吐量的信息。 若要启用事件中心的诊断日志记录,请在 Azure 门户的事件中心页上的左侧菜单上选择“诊断设置”。 有关详细信息,请参阅设置 Azure 事件中心的诊断日志

使用 Azure 资源管理器模板

可在 Azure 资源管理器模板部署期间启用自动膨胀功能。 例如,将 isAutoInflateEnabled 属性设置为“true”并将 maximumThroughputUnits 设置为 10。 例如:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "namespaceName": {
            "defaultValue": "fabrikamehubns",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.EventHub/namespaces",
            "apiVersion": "2022-10-01-preview",
            "name": "[parameters('namespaceName')]",
            "location": "China East",
            "sku": {
                "name": "Standard",
                "tier": "Standard",
                "capacity": 1
            },
            "properties": {
                "minimumTlsVersion": "1.2",
                "publicNetworkAccess": "Enabled",
                "disableLocalAuth": false,
                "zoneRedundant": true,
                "isAutoInflateEnabled": true,
                "maximumThroughputUnits": 10,
                "kafkaEnabled": true
            }
        }
	]
}

有关完整的模板,请参阅 GitHub 上的创建事件中心命名空间和启用膨胀模板

后续步骤

若要了解有关事件中心的详细信息,请参阅事件中心概述