Я делаю тесты с Кафкой и Голангом
Я использую:
Docker:
https://hub.docker.com/r/bitnami/kafka
Сарам:
https://github.com/Shopify/sarama
Пример очень прост - это Потребитель, который подключается к Кафке:
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
не работает