Junior — Middle
Jak można określić fakt odczytania wiadomości w Kafka?
sobes.tech AI
Odpowiedź od AI
W Kafka fakt odczytania wiadomości jest określany za pomocą przesunięć (offsetów) w partycjach tematu. Każdy konsument (consumer) śledzi, do którego offsetu odczytał wiadomości w każdej partycji.
Aby określić, że wiadomość została odczytana, należy:
- Upewnić się, że konsument pomyślnie przetworzył wiadomość.
- Potwierdzić (commit) offset tej wiadomości w Kafka, czyli poinformować brokera, że wszystkie wiadomości do tego offsetu zostały przetworzone.
W Go, korzystając z klienta Kafka (np. sarama lub confluent-kafka-go), można jawnie zatwierdzać przesunięcia po przetworzeniu wiadomości. Jeśli offset jest zatwierdzony, wiadomość jest uważana za odczytaną i nie będzie ponownie dostarczana temu konsumentowi.
Przykład z sarama (uproszczony):
consumer.MarkMessage(msg, "") // Oznacz wiadomość jako odczytaną
consumer.CommitOffsets() // Zatwierdź przesunięcia
W ten sposób fakt odczytania wiadomości to pomyślny commit offsetu w Kafka.