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

Kubernetes 上的事件网格 - 事件传送和重试

对于每个匹配的订阅,具有 Azure Arc 的 Kubernetes 上的事件网格会立即尝试传送每条消息至少一次。 如果未从订阅方获取成功 HTTP 200 响应,或者出现任何故障,Kubernetes 上的事件网格将按照固定的重试计划和重试策略重试传送消息。

默认情况下,Kubernetes 上的事件网格一次向订阅方传送一个事件。 但是,传送请求的有效负载是包含单个事件的数组。 如果启用输出批处理功能,则它可以一次传送多个事件。 有关此功能的详细信息,请参阅批量事件传送

重要

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

注意

在预览版中,Kubernetes 上的事件网格功能通过 API 版本 2020-10-15-Preview 得到支持。

重试计划

传送事件后,Kubernetes 上的事件网格最多会等待 60 秒,以获得响应。 如果订阅方的终结点未发送成功响应(HTTP 200 等),则它会重试发送事件。 工作原理如下。

  1. 消息到达 Kubernetes 上的事件网格。 模块尝试立即传递此消息。
  2. 如果传送失败,则此消息在 1 分钟队列中排队,并在一分钟后重试。
  3. 如果传送继续失败,则此消息在 10 分钟队列中排队,并每 10 分钟重试一次。
  4. 模块尝试传递,直至成功或达到重试策略限制为止。

重试策略

可以通过两种配置来确定重试策略。 它们是:

  • 最大尝试次数
  • 事件生存时间 (TTL)

如果事件达到任一重试策略限制,则会将其删除。 可以根据订阅来配置这些限制。 以下部分进一步详细介绍了每种限制。

为每个订阅方配置默认值

你还可以分别为每个订阅指定重试策略限制。 有关为每个订阅方配置默认值的信息,请参阅 API 文档。 订阅级别默认值将替代 Kubernetes 上的事件网格模块级别配置。

以下示例将设置一个 Webhook 订阅,其 maxNumberOfAttempts 设置为 3 且 eventTimeToLiveInMinutes 设置为 30 分钟。

{
 "properties": {
  "destination": {
   "endpointType": "WebHook",
   "properties": {
    "endpointUrl": "<your_webhook_url>",
    "eventDeliverySchema": " CloudEventSchemaV1_0"
   }
  },
  "retryPolicy": {
   "eventTimeToLiveInMinutes": 30,
   "maxDeliveryAttempts": 3
  }
 }

后续步骤

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