Обработка ошибок концентратора событий - PullRequest
0 голосов
/ 21 декабря 2018

Для концентратора событий, если мы сталкиваемся с ошибкой и происходит сбой потребителя, то в следующий раз, когда он выясняет, как он запрашивает, на какой контрольной точке он находился для раздела, к которому он обращается из хранилища, чтобы он мог сравнитьссылочный идентификатор последовательности этого сообщения и входящих сообщений и обработка только тех, которые следуют после этого идентификатора последовательности?

Для сохранения контрольной точки есть API, но как его получить?

1 Ответ

0 голосов
/ 01 января 2019

Поскольку вы знаете, что указание Event Hub Check является чисто клиентской стороной, то есть вы можете сохранить текущее смещение в учетной записи хранения, связанной с вашим концентратором событий, используя метод

await context.CheckpointAsync();

в коде вашего клиента.Это будет преобразовано в вызов учетной записи хранения.Это не связано с каким-либо вызовом службы EventHub.

При возникновении сбоя в вашем концентраторе событий вы можете прочитать последнее (обновленное) смещение из учетной записи хранения, чтобы избежать дублирования событий. Это должно обрабатыватьсяВы на стороне клиента, и он не будет обрабатываться самим концентратором событий.

Если считыватель отключается от раздела, при повторном подключении он начинает чтение с ранее отправленной контрольной точкипоследним читателем этого раздела в этой группе потребителей.Когда устройство чтения подключается, оно передает смещение в концентратор событий, чтобы указать место, с которого следует начать чтение.Таким образом, вы можете использовать контрольные точки, чтобы пометить события как «завершенные» в последующих приложениях и обеспечить отказоустойчивость, если происходит аварийное переключение между считывателями, работающими на разных машинах.Можно вернуться к более старым данным, указав нижнее смещение от этого процесса контрольной точки.Благодаря этому механизму контрольная точка обеспечивает как отказоустойчивость, так и воспроизведение потока событий.

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

Подробная информация о контрольной точке будет сохранена в учетной записи хранения, связанной с концентратором событий, в формате, представленном ниже.,Это можно прочитать с помощью WindowsAzure.Storage клиента, чтобы выполнить пользовательскую проверку порядкового номера последнего полученного события.

sample checkpoint details

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...