Junior — Middle
Как се извършва процесът на потвърждение за обработка на съобщения в Kafka?
sobes.tech AI
Отговор от AI
В Apache Kafka потвърждението за обработка на съобщения (acknowledgment) се осъществява чрез механизма за offset commit.
Процес:
- Консуматорът получава съобщение от темата.
- След успешно обработване на съобщението, консуматорът записва (commit) offset-а на това съобщение.
- Kafka съхранява информация за последния потвърден offset за всяка група от консуматори.
В Go, използвайки Kafka клиент (например sarama или confluent-kafka-go), потвърждението може да бъде автоматично или ръчно:
- Автоматично commit — клиентът периодично изпраща информация за последния обработен offset.
- Ръчно commit — разработчикът явно извиква метода commit след обработката на съобщението, което осигурява по-голям контрол и надеждност.
Пример с sarama (ръчно commit):
consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// В обработчика на съобщения, след обработка:
session.MarkMessage(message, "") // маркира съобщението като обработено
// След приключване на обработката се извиква Commit()