Kubernetes 上的事件网格 - 批量事件传递

具有 Azure Arc 的 Kubernetes 上的事件网格支持在单个传递请求中传递多个事件。 通过此功能,可以增加总体传递吞吐量,而无需增加每个请求的 HTTP 开销。 默认情况下,Batch 事件传递已关闭,可以使用事件订阅配置启用。

重要

Azure Arc 上的 Kubernetes 事件网格目前正处于公共预览阶段。 此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款

警告

处理每个传递请求的最大允许持续时间不会更改,即使事件处理程序代码可能必须为每个批处理请求执行更多工作。 传输超时默认为 60 秒。

批量事件传递策略

可以通过调整以下两个设置,根据事件订阅自定义 Kubernetes 上的事件网格中的批处理事件传送行为:

  • 每个批处理的最大事件数

    此设置设置可添加到批处理传递请求的事件数上限。

  • 首选批大小(以千字节为单位)

    此配置项目用于进一步控制每个传递请求可以发送的最大千字节数。

批量事件传递行为

  • 全部或无

    Kubernetes 上的事件网格具有全有或全无语义的运行方式。 它不支持批量事件传递的部分成功性。 事件处理程序应小心,只要求每个批有任意数量的事件,因为它们可以在 60 秒内合理处理。

  • 乐观批处理

    批处理策略设置对批处理行为并不严格,并且会尽力遵守。 在低事件速率下,通常会发现批大小小于每个批请求的最大事件数。

  • 默认情况下,批处理传递设置为 OFF

    默认情况下,Kubernetes 上的事件网格只会向每个传递请求添加一个事件。 分批启用事件传递的方法是在事件订阅有效负载中设置本篇文章前面提到的任一设置。

  • 默认值

    创建事件订阅时,不需要同时指定设置(每个批的最大事件数和大约批大小(以千字节为单位)。 如果仅设置一个设置,Kubernetes 上的事件网格将使用(可配置)默认值。

Example

以下示例演示如何在终结点属性中设置 maxEventsPerBatchpreferredBatchSizeInKilobytes 启用批处理。

{
    "properties":
    {
        "destination":
        {
            "endpointType": "WebHook",
            "properties":
             {
                "endpointUrl": "<your_webhook_url>",
                "maxEventsPerBatch": 10,
                "preferredBatchSizeInKilobytes": 64
             }
        },
    }
}

后续步骤

若要了解 Azure Arc for Kubernetes 上的事件网格支持的目标和处理程序,请参阅 Kubernetes 上的事件网格 - 事件处理程序