簡體   English   中英

Kafka Consumer:如何以編程方式從 Go Sarama 中的特定偏移量消費

[英]Kafka Consumer: How to programatically consume from specific offset in Go Sarama

最近,我開始學習使用kafka工作。 我正在從事的項目使用sarama

對於閱讀消息,我使用ConsumerGroup

如果foo返回false ,我需要在一段時間后再次閱讀該消息。 如何才能做到這一點?

func (consumer *Consumer) ConsumeClaim(session sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error {

    for message := range claim.Messages() {

            if ok := foo(message); ok {
                session.MarkMessage(message, "")
            } else {
                // ???
            }

    }

    return nil
}

您可以通過在消費者組的Setup()回調中包含以下內容來將消費者組的偏移量重置為較舊的偏移量:

func (e myConsumerGroup) Setup(sess sarama.ConsumerGroupSession) error {
    sess.ResetOffset(topic, partition, offset, "")

    return nil
}

您也可以通過控制台實現相同的目的:

kafka-consumer-groups \
    --bootstrap-server localhost:9092 \
    --group my-consumer-group \
    --topic myTopicName \
    --reset-offsets \
    --to-offfset 100 \
    --execute

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM