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:
- Vartotojas gauna žinutę iš temos.
- Sėkmingai apdorojus žinutę, vartotojas įrašo (commit) šios žinutės offsetą.
- 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()