ホームページ  >  記事  >  バックエンド開発  >  Sarama を使用して Golang Kafka 10 でコンシューマ グループ オフセットを取得する方法

Sarama を使用して Golang Kafka 10 でコンシューマ グループ オフセットを取得する方法

DDD
DDDオリジナル
2024-10-25 11:09:02180ブラウズ

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

Golang Kafka 10 でのコンシューマ グループ オフセットへのアクセス

Kafka 10 による Golang Kafka ライブラリ (sarama) の進化により、ネイティブ コンシューマ グループが導入されました機能性。これにより、コンシューマ グループによって処理されている現在のメッセージ オフセットを取得する方法が問題になります。

解決策:

このニーズに対処するために、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。