Поделиться через


Сетка событий на Kubernetes — доставка события и повторная попытка

Сетка событий на Kubernetes с Azure Arc пытается немедленно доставить каждое сообщение по крайней мере один раз для каждой подходящей подписки. Если успешный ответ HTTP 200 от подписчика не получен или произошел сбой, то Сетка событий на Kubernetes повторяет попытку доставки на основе фиксированного расписания повторных попыток и политики повтора.

По умолчанию Сетка событий на Kubernetes доставляет подписчику одно событие за один раз. Но полезные данные запроса доставки представляют собой массив с одним событием. Поэтому возможна доставка более одного события за один раз, если включена функция пакетной обработки выходных данных. Дополнительные сведения об этой функции см. в статье Пакетная доставка событий.

Важно!

Служба "Сетка событий" в Kubernetes с поддержкой Azure Arc сейчас находится в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для использования рабочей среде. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Примечание.

В предварительной версии Сетка событий для функций Kubernetes поддерживается через API версии 2020-10-15-Preview.

Расписание повторной доставки

После доставки события Сетка событий на Kubernetes ожидает ответа до 60 секунд. Если конечная точка подписчика не отправляет ответ об успешном выполнении (HTTP 200 или подобный), реализуется попытка повторной отправки события. Вот как это работает.

  1. Сообщение поступает в Сетку событий на Kubernetes. Немедленно предпринимается попытка доставки.
  2. В случае сбоя доставки сообщение помещается в 1-минутную очередь, и через минуту выполняется повторная попытка доставки.
  3. Если доставка не выполнена, сообщение помещается в 10-минутную очередь, и далее попытка доставки повторяется каждые 10 минут.
  4. Попытки доставки выполняются до тех пор, пока не будет достигнут предел согласно политике повтора.

Политика повтора

Существуют две конфигурации, определяющие политику повтора. В их число входят:

  • Максимальное число попыток
  • Срок действия события (TTL)

Событие будет удалено, если достигнут один из лимитов политики повтора. Конфигурация параметров этих лимитов выполняется на основании подписки. В следующем разделе каждый из них описан более подробно.

Настройка значений по умолчанию для каждого подписчика

Также можно указать пределы политики повтора индивидуально для каждой подписки. Сведения о настройке значений по умолчанию для каждого подписчика см. в Документации по API. Значения по умолчанию на уровне подписки переопределяют настройки на уровне модуля Сетки событий для Kubernetes.

В следующем примере настраивается подписка веб-перехватчика при maxNumberOfAttempts, равном 3 минутам, и eventTimeToLiveInMinutes, равном 30 минутам.

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

Следующие шаги

Дополнительные сведения о целевых объектах и обработчиках, поддерживаемых Сеткой событий в Azure Arc для Kubernetes, см. в статье Сетка событий в Kubernetes — обработчики событий.