Sobes.tech
Junior — Middle

Kaip vyksta pranešimų apdorojimo patvirtinimo procesas Kafka?

sobes.tech AI

Atsakymas iš AI

„Apache Kafka“ patvirtinimas, kad žinutės buvo apdorotos (acknowledgment), vykdomas naudojant offset commit mechanizmą.

Procesas:

  1. Vartotojas gauna žinutę iš temos.
  2. Sėkmingai apdorojus žinutę, vartotojas įrašo (commit) šios žinutės offsetą.
  3. Kafka saugo informaciją apie paskutinį patvirtintą offsetą kiekvienai vartotojų grupei.

Go kalboje, naudojant Kafka klientą (pvz., sarama ar confluent-kafka-go), patvirtinimas gali būti automatinis arba rankinis:

  • Automatinis commit — klientas periodiškai siunčia informaciją apie paskutinį apdorotą offsetą.
  • Rankinis commit — programuotojas aiškiai iškviečia commit metodą po žinutės apdorojimo, tai suteikia daugiau kontrolės ir patikimumo.

Pavyzdys su sarama (rankinis commit):

consumer, _ := sarama.NewConsumerGroup(brokers, groupID, config)
// Žinučių apdorojimo funkcijoje, po apdorojimo:
session.MarkMessage(message, "") // pažymi žinutę kaip apdorotą
// Po apdorojimo pabaigos iškviečiama Commit()