Выясните, все ли сообщения используются или нет в Kafka

Я новичок в Кафке. Я отправлю пару сообщений в тему Kafka с несколькими разделами и прочитаю их. В конце, если все связанные сообщения будут использованы, я отправлю уведомление.

Например:

Создайте тему с 3 partitions

for 1 to n:
   sendItemToKafkaTopic(item-unique-key) 
end

затем потребляйте его:

processItem (1 to n) с масштабируемой системой и, наконец, n. item отправить уведомление о завершении.

Примечание. Сторона производителя должна работать одновременно, чтобы не было одной массовой операции.

Есть ли какое-нибудь предложение? Кстати, решение Kafka не требуется. Если у вас есть другие варианты, поделитесь.

Вы можете попытаться получить верхнюю границу темы и последнее зафиксированное смещение группы потребителей, что даст вам LAG темы. Если ваш LAG равен 0, тогда будут использованы все сообщения.

Eldar 26.02.2024 20:48
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Построение конвейеров данных в реальном времени с Apache Kafka: Руководство по Python
Apache Kafka - популярная платформа распределенной потоковой передачи данных, которую можно использовать для построения конвейеров данных в реальном...
1
1
199
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нашел потрясающий пост по этому поводу: https://medium.com/@debyroth340/identify-job-completion-in-multi-phase-kafka-consumers-33ee8a974963

  1. Полные шаги продюсера.
  2. Сделайте смещенный снимок темы и создайте запись.
  3. Продолжайте потребительские процессы и делайте снимки потребительских компенсаций.
  4. Если текущий снимок смещения больше записи, уведомите его как завершенный.

Чтобы сделать снимок, вы можете использовать AdminClient в Kafka.

TopicPartition tp = new TopicPartition(topicName, 0);
Map<TopicPartition, OffsetSpec> topicPartitionOffsets = Map.of(
       tp,OffsetSpec.latest());
var offsets = adminClient.listOffsets(topicPartitionOffsets);

Чтобы найти группы потребителей: Apache Kafka получит список потребителей по определенной теме Найдя группы потребителей, вы можете получить смещения групп потребителей.

Другие вопросы по теме