Azure Концентратор событий: в одной группе потребителей может быть не более 5 одновременных читателей - PullRequest
0 голосов
/ 17 апреля 2020

Согласно Microsoft docs

В одной группе потребителей может быть не более 5 одновременных считывателей; однако рекомендуется, чтобы в каждой группе потребителей был только один активный получатель в разделе. В пределах одного раздела каждый читатель получает все сообщения. Если у вас есть несколько читателей в одном разделе, то вы обрабатываете дубликаты сообщений. Вы должны справиться с этим в своем коде, который может быть не тривиальным. Тем не менее, в некоторых случаях это правильный подход ios.

  1. Как настроить наши EventHubConsumerClient так, чтобы разделы баланса нагрузки были одинаково распределены между потребителями в одной и той же группе потребителей ?

  2. Как мы можем запретить двум или более потребителям в одной и той же группе потребителей использовать один и тот же раздел?

Примечание: использование узла azure eventhubs sdk https://www.npmjs.com/package/@azure / event-hubs

Заранее спасибо!

1 Ответ

1 голос
/ 17 апреля 2020

Если вы создаете EventHubConsumerClient с использованием перегрузки, которая принимает хранилище контрольных точек, тогда клиент будет управлять балансировкой нагрузки совместным образом и обеспечит чтение раздела одним клиентом.

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

Однако я хотел бы отметить одну вещь: когда EventHubConsumerClient является балансировкой нагрузки, ваше приложение все еще должно быть идемпотентным перед лицом повторяющихся / читаемых событий. Event Hubs предлагает гарантию как минимум один раз; в редких случаях служба может возвратить событие более одного раза.

...