如何在Golang Sarama中修复ConsumePartition

时间:2019-06-13 15:06:33

标签: docker go apache-kafka sarama

我正在用Kafka和Golang进行测试

我正在使用:

Docker: https://hub.docker.com/r/bitnami/kafka

沙拉: https://github.com/Shopify/sarama

这个例子很简单,就是连接到Kafka的使用者: https://godoc.org/github.com/Shopify/sarama#example-Consumer

代码是这样的:

package main

import (
    "log"
    "os"
    "os/signal"

    "github.com/Shopify/sarama"
)

func main() {

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

    defer func() {
        if err := consumer.Close(); err != nil {
            log.Fatalln(err)
        }
    }()

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

    defer func() {
        if err := partitionConsumer.Close(); err != nil {
            log.Fatalln(err)
        }
    }()

    // Trap SIGINT to trigger a shutdown.
    signals := make(chan os.Signal, 1)
    signal.Notify(signals, os.Interrupt)

    consumed := 0
    ConsumerLoop:
    for {
        select {
        case msg := <-partitionConsumer.Messages():
            log.Printf("Consumed message offset %d\n", msg.Offset)
            consumed++
        case <-signals:
            break ConsumerLoop
        }
    }

    log.Printf("Consumed: %d\n", consumed)
}

但是执行时: 运行main.go

它显示了以下错误:

panic: dial tcp: lookup fd6ee3862a45: no such host

goroutine 1 [running]:
main.main()
    /Users/vn0sgkq/go/src/github.com/hectorgool/kafka1/main.go:25 +0x3f1
exit status 2

回购在这里: https://github.com/hectorgool/kafka1/blob/master/main.go#L25

是的,我知道我缺少消息的生产者,但奇怪的是: consumer.ConsumePartition 不起作用

0 个答案:

没有答案