Параллельная обработка сообщений Kafka в службе Windows с использованием C # - PullRequest
1 голос
/ 13 июня 2019

У меня есть служба Windows, написанная на C #.Ранее мы использовали концентраторы событий с несколькими разделами для очереди сообщений.Мы недавно переехали в Кафку.Для реализации концентраторов событий в c # у нас есть IEventProcessor.ProcessEventsAsync, который продолжает прослушивать уведомления о концентраторах событий и запускается всякий раз, когда сообщение отправляется в концентратор событий, который работает асинхронно в фоновом режиме

Я не нашел никакого эквивалентаметод в кафке.

Мое требование здесь - подписаться на тему Kafka и постоянно использовать сообщения.Когда сообщение используется, некоторые другие операции также должны выполняться для этого сообщения.Для каждого сообщения, скажем, время выполнения составляет около 15 минут, я хочу, чтобы потребитель Kafka использовал все сообщения и оставлял их в очереди, как при получении и записи в файл.Другой процесс должен прочитать файл, выбрать сообщение и выполнить другие операции.Я хочу, чтобы все они работали одновременно / параллельно.

PS: Я написал консольное приложение, которое может генерировать и потреблять одно сообщение. Я ищу очереди и параллелизм.

1 Ответ

1 голос
/ 13 июня 2019

Для паралеллизма Кафка реализует так называемые группы потребителей . Кафка хранит «смещения» (читай: ключ записи по теме), а также хранит смещения того, где находится данная группа потребителей при обработке записей. Это должно позволить вам на лету создавать новые потребительские экземпляры, используя одну и ту же программу, и, изменяя группу, разрешить двум программам использовать одни и те же данные в параллельном режиме для разных задач.

Я нашел эту ссылку полезной и при создании моего первого потребителя, если вы нашли способ создать его без идентификатора группы: http://cloudurable.com/blog/kafka-tutorial-kafka-consumer/index.html

Надеюсь, это поможет!

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