Sobes.tech
Junior — Middle

Как се извършва процесът на потвърждение за обработка на съобщения в Kafka?

sobes.tech AI

Отговор от AI

В Apache Kafka потвърждението за обработка на съобщения (acknowledgment) се осъществява чрез механизма за offset commit.

Процес:

  1. Консуматорът получава съобщение от темата.
  2. След успешно обработване на съобщението, консуматорът записва (commit) offset-а на това съобщение.
  3. Kafka съхранява информация за последния потвърден offset за всяка група от консуматори.

В Go, използвайки Kafka клиент (например sarama или confluent-kafka-go), потвърждението може да бъде автоматично или ръчно:

  • Автоматично commit — клиентът периодично изпраща информация за последния обработен offset.
  • Ръчно commit — разработчикът явно извиква метода commit след обработката на съобщението, което осигурява по-голям контрол и надеждност.

Пример с sarama (ръчно commit):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// В обработчика на съобщения, след обработка:
session.MarkMessage(message, "") // маркира съобщението като обработено
// След приключване на обработката се извиква Commit()