下面是使用 Sarama 库的 Kafka 消费组消费代码示例:

package main

import (
    "fmt"
    "os"
    "os/signal"
    "github.com/Shopify/sarama"
)

func main() {
    config := sarama.NewConfig()
    config.Consumer.Group.Rebalance.Strategy = sarama.BalanceStrategyRoundRobin
    config.Consumer.Offsets.Initial = sarama.OffsetOldest

    consumer, err := sarama.NewConsumer([]string{"localhost:9092"}, config)
    if err != nil {
        panic(err)
    }
    defer func() {
        if err := consumer.Close(); err != nil {
            panic(err)
        }
    }()

    signals := make(chan os.Signal, 1)
    signal.Notify(signals, os.Interrupt)

    partitionConsumer, err := consumer.ConsumePartition("my_topic", 0, sarama.OffsetNewest)
    if err != nil {
        panic(err)
    }
    defer func() {
        if err := partitionConsumer.Close(); err != nil {
            panic(err)
        }
    }()

    for {
        select {
        case msg := <-partitionConsumer.Messages():
            fmt.Printf("Received message: %s\n", string(msg.Value))
        case <-signals:
            return
        }
    }
}

这个示例中创建了一个 Kafka 消费者,使用 RoundRobin 策略进行消费者组的负载均衡,并从最早的偏移量开始消费。然后,从指定的主题和分区创建了一个分区消费者,并循环消费消息。如果收到中断信号,则退出循环。

Go Kafka Sarama 消费者组消费代码示例

原文地址: https://www.cveoy.top/t/topic/lywb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录