首頁  >  文章  >  後端開發  >  如何使用 Sarama 檢索 Golang Kafka 10 中的消費者群組偏移量?

如何使用 Sarama 檢索 Golang Kafka 10 中的消費者群組偏移量?

DDD
DDD原創
2024-10-25 11:09:02256瀏覽

How to Retrieve Consumer Group Offsets in Golang Kafka 10 using Sarama?

訪問Golang Kafka 10 中的消費者群組偏移

Golang Kafka 庫(sarama)與Kafka 10 的演變引入了本機消費者組功能。這就提出瞭如何檢索消費者群組正在處理的當前訊息偏移量的問題。

解決方案:

為了解決這個需求,sarama 庫提供了一種機制用於存取消費者群組偏移量。以下程式碼片段示範如何使用 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>

此程式碼建立一個消費者群組並連接到指定的代理程式。它會停用自動提交以確保偏移量在檢索過程中不會更新。 gcInfo 結構體追蹤初始偏移量,該偏移量代表消費者群組目前正在處理的訊息偏移量。

透過使用此機制,開發人員可以輕鬆檢查和管理其消費者群組的偏移量,從而能夠更精細地控制訊息處理和追蹤。

以上是如何使用 Sarama 檢索 Golang Kafka 10 中的消費者群組偏移量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn