Sobes.tech
Junior — Middle

Come avviene il processo di conferma dell'elaborazione dei messaggi in Kafka?

sobes.tech AI

Risposta dell'AI

In Apache Kafka, la conferma dell'elaborazione dei messaggi (acknowledgment) avviene tramite il meccanismo di offset commit.

Processo:

  1. Il consumatore riceve un messaggio dal topic.
  2. Dopo aver elaborato con successo il messaggio, il consumatore registra (commit) l'offset di quel messaggio.
  3. Kafka memorizza le informazioni sull'ultimo offset confermato per ogni gruppo di consumatori.

In Go, utilizzando un client Kafka (ad esempio, sarama o confluent-kafka-go), la conferma può essere automatica o manuale:

  • Commit automatico — il client invia periodicamente le informazioni sull'ultimo offset elaborato.
  • Commit manuale — lo sviluppatore chiama esplicitamente il metodo commit dopo aver elaborato il messaggio, offrendo maggiore controllo e affidabilità.

Esempio con sarama (commit manuale):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// Nel gestore dei messaggi, dopo l'elaborazione:
session.MarkMessage(message, "") // segna il messaggio come elaborato
// Dopo aver completato l'elaborazione, si chiama Commit()