Sobes.tech
Junior — Middle

Jak probíhá proces potvrzení zpracování zpráv v Kafka?

sobes.tech AI

Odpověď od AI

V Apache Kafka potvrzení zpracování zpráv (acknowledgment) se provádí pomocí mechanismu offset commit.

Proces:

  1. Konzumer obdrží zprávu z tématu.
  2. Po úspěšném zpracování zprávy konzumer zaznamená (commit) offset této zprávy.
  3. Kafka ukládá informace o posledním potvrzeném offsetu pro každou skupinu konzumentů.

V Go, s použitím klienta Kafka (například sarama nebo confluent-kafka-go), může být potvrzení automatické nebo ruční:

  • Automatický commit — klient periodicky odesílá informace o posledním zpracovaném offsetu.
  • Ruční commit — vývojář explicitně volá metodu commit po zpracování zprávy, což poskytuje větší kontrolu a spolehlivost.

Příklad s sarama (ruční commit):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// V handleru zpráv, po zpracování:
session.MarkMessage(message, "") // označuje zprávu jako zpracovanou
// Po dokončení zpracování se volá Commit()