Bagaimana untuk Mendapatkan Offset Kumpulan Pengguna dalam Go dengan Kafka 10?

Barbara Streisand
Lepaskan: 2024-10-30 06:17:02
asal
796 orang telah melayarinya

How to Retrieve Consumer Group Offsets in Go with Kafka 10?

Mendapatkan semula Offset Kumpulan Pengguna dalam Go with Kafka 10

Dengan keluaran Kafka 10, perpustakaan Go Kafka (sarama) kini menyediakan pengguna keupayaan kumpulan tanpa bergantung kepada perpustakaan luar. Ini menimbulkan persoalan tentang cara mendapatkan semula offset mesej semasa yang sedang diproses oleh kumpulan pengguna.

Penyelesaian

Untuk mendapatkan offset kumpulan pengguna, ikut langkah berikut:

  1. Melaksanakan Struktur Maklumat Kumpulan Pengguna:

    <code class="go">type gcInfo struct {
        offset int64
    }</code>
    Salin selepas log masuk
  2. Buat Pengendali Maklumat Kumpulan Pengguna:

    <code class="go">func (g *gcInfo) ConsumeClaim(_ sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error {
        g.offset = claim.InitialOffset()
        return nil
    }</code>
    Salin selepas log masuk
  3. Konfigurasikan dan Cipta Kumpulan Pengguna:

    <code class="go">config := sarama.NewConfig()
    config.Consumer.Offsets.AutoCommit.Enable = false
    client, err := sarama.NewConsumerGroup(strings.Split(brokers, ","), groupName, config)</code>
    Salin selepas log masuk
  4. Gunakan Mesej Dalam Kumpulan:

    <code class="go">info := gcInfo{}
    if err := client.Consume(ctx, []string{topic}, &amp;info); err != nil {
        return 0, err
    }</code>
    Salin selepas log masuk
  5. Dapatkan Offset:

    <code class="go">return info.offset, nil</code>
    Salin selepas log masuk

Dengan ini pelaksanaan, anda boleh mendapatkan semula kumpulan pengguna mengimbangi untuk partition dan topik tertentu pada bila-bila masa.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Offset Kumpulan Pengguna dalam Go dengan Kafka 10?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan