你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用应用程序组的资源调控

Azure 事件中心使你能够控制连接到事件中心的客户端应用程序的事件流式处理工作负载。 可以创建称为“应用程序组”的逻辑组,其中每个组都是客户端应用程序的集合,然后为应用程序组(客户端应用程序组)应用配额和访问管理策略。

注意

应用程序组仅在“高级”和“专用”层中可用。

应用程序组

应用程序组是一个或多个与事件中心数据平面交互的客户端应用程序的集合。 每个应用程序组的作用域可以是单个事件中心命名空间,也可以是命名空间中的事件中心(实体),该应用程序组应使用唯一标识条件,例如客户端应用程序的安全上下文(共享访问签名 (SAS) 或 Microsoft Entra 应用程序 ID)。

事件中心当前支持使用安全上下文来创建应用程序组。 因此,每个应用程序组都必须具有与之关联的唯一 SAS 策略或 Microsoft Entra 应用程序 ID。 如果你愿意,可以在事件中心级别使用安全上下文,以将应用程序组与命名空间中的特定事件中心配合使用。

应用程序组是在命名空间级别创建的逻辑实体。 因此,与事件中心交互的客户端应用程序不需要知道应用程序组的存在。 事件中心可以使用标识条件将任何客户端应用程序关联到应用程序组。

如下所示,可以根据每个客户端应用程序使用的安全上下文创建应用程序组。 因此,应用程序组可以跨越使用同一安全上下文的多个客户端应用程序。

Image showing capturing of Event Hubs data into Azure Storage or Azure Data Lake Storage.

应用程序组与使用者组没有直接关联。 根据应用程序组标识符(如安全上下文),一个使用者组可以有一个或多个与其关联的应用程序组,或者一个应用程序组可以跨多个使用者组。

以下是应用程序组的关键属性:

参数 说明
name 应用程序组的唯一名称。
clientAppGroupIdentifier 将应用程序组与唯一标识条件(即 SAS 策略或 Microsoft Entra 应用程序 ID 等安全上下文)相关联。
策略 策略列表,例如控制客户端应用程序与事件中心命名空间之间的事件流的限制策略
isEnabled 确定应用程序组的客户端应用程序是否可以访问事件中心命名空间。

应用程序组策略

每个应用程序组可以包含零个或更多策略,这些策略控制属于应用程序组的客户端应用程序的数据平面访问。 应用程序组当前支持限制策略。

限制策略

可以使用不同的入口和出口指标指定限制策略。 应用程序组支持使用以下指标来限制客户端应用程序的入口或出口工作负载。

参数 说明
IncomingBytes 发布者吞吐量(以字节/秒为单位)。
OutgoingBytes 使用者吞吐量(以字节/秒为单位)。
IncomingMessages 每秒发布的事件数。
OutgoingMessages 每秒使用的事件数。

应用应用程序组的策略时,客户端应用程序工作负载可能会减慢或遇到服务器繁忙异常。

限制策略 - 阈值限制

下表显示了可以针对限制策略中的不同指标 ID 设置的最低阈值限制:

指标 ID 最小限制
IncomingByte 1 KB
OutgoingByte 1 KB
IncomingMessage 1
OutgoingMessage 1

注意

对限制策略的阈值设置的限制优先于为 Kafka 主题属性设置的任何值。 例如,IncomingBytes 的优先级高于 message.max.bytes
应用程序组限制预计会限制高于允许流量方案的稳定流量(跨越几分钟)。几秒钟的快速流量爆发可能不会通过应用程序组进行限制。 建议查看数分钟时间内允许的吞吐量,以验证是否发生了限制。

协议支持和错误代码

应用程序组支持通过以下协议进行限制操作:AMQP、Kafka 和 HTTP。 下表提供应用程序组返回的预期错误代码:

协议 操作 错误代码 错误消息
AMQP 发送 50004 子代码:50013,应用程序组受应用程序组 ID 和策略名称的限制
HTTP 发送 503 子代码:50013。 应用程序组受应用程序组 ID 和策略名称的限制
Kafka 发送 PolicyViolation 中转站:策略冲突

由于协议级别的限制,接收操作期间不支持错误消息。 当应用程序组对接收操作进行限制时,你会在使用者端遇到消息消耗缓慢的情况。

禁用应用程序组

默认情况下,应用程序组处于启用状态,这意味着所有客户端应用程序都可以通过遵守应用程序组策略来访问事件中心命名空间以发布和使用事件。

禁用应用程序组后,客户端将仍然能够连接到事件中心,但授权会失败,然后客户端连接会被关闭。 因此,你会在诊断日志中看到大量成功的打开连接和关闭连接,其授权失败次数相同。

后续步骤

有关如何创建和管理应用程序组的说明,请参阅使用 Azure 门户的客户端应用程序的资源调控