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

Barbara Streisand
リリース: 2024-10-30 06:17:02
オリジナル
732 人が閲覧しました

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

Kafka 10 を使用した Go でのコンシューマ グループ オフセットの取得

Kafka 10 のリリースにより、Go Kafka ライブラリ (sarama) はコンシューマ グループ オフセットを提供するようになりました。外部ライブラリに依存せずにグループ機能を利用できます。これにより、コンシューマ グループによって処理されている現在のメッセージ オフセットを取得する方法が問題になります。

解決策

コンシューマ グループ オフセットを取得するには、次の手順に従います。

  1. コンシューマ グループ情報構造体の実装:

    <code class="go">type gcInfo struct {
        offset int64
    }</code>
    ログイン後にコピー
  2. コンシューマ グループ情報ハンドラの作成:

    <code class="go">func (g *gcInfo) ConsumeClaim(_ sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error {
        g.offset = claim.InitialOffset()
        return nil
    }</code>
    ログイン後にコピー
  3. コンシューマ グループの構成と作成:

    <code class="go">config := sarama.NewConfig()
    config.Consumer.Offsets.AutoCommit.Enable = false
    client, err := sarama.NewConsumerGroup(strings.Split(brokers, ","), groupName, config)</code>
    ログイン後にコピー
  4. グループ内のメッセージ:

    <code class="go">info := gcInfo{}
    if err := client.Consume(ctx, []string{topic}, &amp;info); err != nil {
        return 0, err
    }</code>
    ログイン後にコピー
  5. オフセットを取得:

    <code class="go">return info.offset, nil</code>
    ログイン後にコピー

これで実装すると、いつでも特定のパーティションとトピックのコンシューマ グループ オフセットを取得できます。

以上がKafka 10 を使用して Go でコンシューマ グループ オフセットを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!