Генерация UUID в ответ на сообщение, отправленное Kafka Producer - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь разработать приложение, которое считывает байтовые массивы (представляющие структуру C и каждый массив, связанный с UUID) из кэша и отправляет его на Kafka Server через приложение Producer в C.

Приложение-производитель kafka накапливает фиксированное количество таких пакетов и отправляет их сразу.

Я хочу получить подтверждение того, что из сообщений в пакете были успешно доставлены, и вернуть их UUID, чтобы я могможете очистить их из моего приложения кеша.Я новичок в kafka, пожалуйста, покажите мне, как лучше всего это сделать.

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

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

Например, с помощью librdkafka (на мой взгляд, лучший клиент C Kafka) вы можете получить обратный вызов отчета о доставке после завершения запроса на производство.Содержит сообщение и ошибку в случае сбоя.Это должно позволить вам легко определить, какие сообщения были успешно отправлены, и пометить их как выполненные.

См. Метод rd_kafka_conf_set_dr_msg_cb для настройки обратного вызова отчета о доставке. простой пример производителя демонстрирует его использование.

0 голосов
/ 06 июня 2018

Почему бы не создать еще одну потребительскую тему, которая «прослушивает» сообщения, которые были подтверждены, а затем удаляет их из кэша.Затем продюсер может просто при необходимости отправлять сообщения в эту тему.

...