Несколько получателей в концентраторе событий Azure

У меня есть сервер, который должен будет отправлять сообщения нескольким клиентам, чтобы клиенты знали, что что-то нужно сделать.

Я пытаюсь добиться этого с помощью концентратора событий Azure.

Я использую следующий код для отправки сообщения:

await eventHubClient.SendAsync(
    new EventData(Encoding.UTF8.GetBytes(String.Format("Message {0}, {1}", i, sMessage))), 
    "1")
    .ConfigureAwait(continueOnCapturedContext: false);
await eventHubClient.CloseAsync();

Я использую два приложения WPF в качестве слушателей, которые будут создавать слушателя при запуске и сохранять EventProcessorHost в частной переменной.

Когда я отправляю сообщение, выбирается случайный слушатель, который его обработает.

Можно ли отправлять сообщения нескольким получателям с помощью концентратора событий Azure?


person Jron    schedule 08.06.2017    source источник
comment
Зачем использовать для этого EventHub вместо служебной шины Azure? Вы ожидаете очень высокой пропускной способности? Вы читали microsoftintegration.guru/2015/03/? 03 / и stackoverflow.com/questions/28183020/?   -  person Peter Bons    schedule 08.06.2017


Ответы (1)


Вам нужно поместить каждого слушателя в отдельный Группа потребителей.

Слушатели одной и той же группы потребителей являются «конкурирующими потребителями», т. Е. Побеждает тот, кто первым блокирует раздел концентратора событий.

person Mikhail Shilkov    schedule 08.06.2017
comment
Не могли бы вы подробнее остановиться на этом? Насколько мне известно, конкурирующие потребители не являются собственностью EH. - person Martin Wickman; 24.03.2021
comment
Сервер A и сервер B могут подключаться к одной и той же группе потребителей одного и того же концентратора событий. Каждый из них возьмет на себя блокировку некоторых разделов и будет обрабатывать события из этих разделов. Если сервер A умирает, сервер B в конечном итоге захватит его разделы. - person Mikhail Shilkov; 24.03.2021