Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mendapatkan Offset Kumpulan Pengguna di Golang Kafka 10 menggunakan Sarama?
Mengakses Offset Kumpulan Pengguna di Golang Kafka 10
Evolusi perpustakaan Golang Kafka (sarama) dengan Kafka 10 telah memperkenalkan kumpulan pengguna asli kefungsian. Ini menimbulkan persoalan bagaimana untuk mendapatkan semula mesej semasa yang diimbangi yang sedang diproses oleh kumpulan pengguna.
Penyelesaian:
Untuk menangani keperluan ini, perpustakaan sarama menyediakan mekanisme untuk mengakses offset kumpulan pengguna. Coretan kod berikut menunjukkan cara mendapatkan offset menggunakan GetCGOffset():
<code class="go">import ( "context" "fmt" "strings" "github.com/Shopify/sarama" ) func GetCGOffset(ctx context.Context, brokers, groupName, topic string) (int64, error) { config := sarama.NewConfig() config.Consumer.Offsets.AutoCommit.Enable = false client, err := sarama.NewConsumerGroup(strings.Split(brokers, ","), groupName, config) if err != nil { return 0, err } defer client.Close() info := gcInfo{} if err := client.Consume(ctx, []string{topic}, &info); err != nil { return 0, err } return info.offset, nil }</code>
Kod ini mencipta kumpulan pengguna dan menyambung kepada broker yang ditentukan. Ia melumpuhkan autokomit untuk memastikan offset tidak dikemas kini semasa proses mendapatkan semula. Struktur gcInfo menjejaki offset awal, yang mewakili offset mesej semasa sedang diproses oleh kumpulan pengguna.
Dengan menggunakan mekanisme ini, pembangun boleh memeriksa dan mengurus offset kumpulan pengguna mereka dengan mudah, membolehkan kawalan yang lebih terperinci ke atas pemprosesan dan penjejakan mesej.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Offset Kumpulan Pengguna di Golang Kafka 10 menggunakan Sarama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!