ОБНОВЛЕНИЕ: Оказалось, у меня проблема с моими портами в Docker. Не уверен, почему это исправило это явление.
Мне кажется, я столкнулся со странной ошибкой. Я использую библиотеку Sarama и могу успешно создать потребителя.
func main() {
config = sarama.NewConfig()
config.ClientID = "go-kafka-consumer"
config.Consumer.Return.Errors = true
// Create new consumer
master, err := sarama.NewConsumer("localhost:9092", config)
if err != nil {
panic(err)
}
defer func() {
if err := master.Close(); err != nil {
panic(err)
}
}()
partitionConsumer, err := master.ConsumePartition("myTopic",0,
sarama.OffsetOldest)
if err != nil {
panic(err)
}
}
Как только я разбиваю этот код и выхожу за пределы основной процедуры, я сталкиваюсь с ошибкой:
Кафка: у клиента кончились доступные брокеры, с которыми можно поговорить (Доступен ли ваш кластер?)
Я разделил свой код следующим образом: предыдущий метод main (), который я сейчас преобразовал в потребительский пакет с методом NewConsumer (), и мой новый метод main () вызывают NewConsumer () следующим образом:
c := consumer.NewConsumer()
Оператор паники запускается в строке с sarama.NewConsumer
и печатает kafka: client has run out of available brokers to talk to (Is your cluster reachable?)
Почему такой взлом моего кода побудил Сараму не заставить потребителя? Сараму нужно бежать прямо с магистрали?