Как прочитать событие только один раз в Azure Event Hub - PullRequest
0 голосов
/ 28 марта 2020

Я хочу прочитать события только один раз из Azure Концентратор событий, чтобы событие обрабатывалось только один раз. Но при чтении этих событий получается одно и то же событие во всех разделах.

Tech Stack - Spring загружается для чтения событий через

EventProcessorHost host = EventProcessorHost.EventProcessorHostBuilder
            .newBuilder(EventProcessorHost.createHostName(hostNamePrefix), 
consumerGroupName)
            .useAzureStorageCheckpointLeaseManager(storageConnectionString, storageContainerName, null)
            .useEventHubConnectionString(eventHubConnectionString.toString(), eventHubName)
            .build();

Спасибо.

1 Ответ

0 голосов
/ 30 марта 2020

Вы можете создать до 32 раздела на Eventhub, но когда вы отправляете сообщение, которое будет go только на одном разделе (если вы не поставите partition-id, Eventhub отправит сообщение на случайный раздел)

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

возможно проблема с вашим кодом. Чтобы подтвердить это, вы можете использовать Microsoft ServiceBusExplorer для отправки и получения сообщений из Eventhub. Когда вы создадите прослушиватель Eventhub через служебную шину, вы можете получать идентификатор раздела и сообщения в режиме реального времени.

...