Версии: GoLang 1.10.2 Kafka 4.4.1 Docker 18.03.1
Я пытаюсь использовать пакет Sarama от Shopify, чтобы протестировать мой экземпляр Kafka.Я использовал Docker compose для поддержки Kafka / Zookeeper, и все это успешно работает.
Когда я пытаюсь создать клиент Producer с Sarama, выдается ошибка.
Когда я запускаю следующее
package main
import (
"fmt"
"log"
"os"
"os/signal"
"time"
"strconv"
"github.com/Shopify/sarama"
)
func main() {
// Setup configuration
config := sarama.NewConfig()
config.Producer.Return.Successes = true
config.Producer.Partitioner = sarama.NewRandomPartitioner
config.Producer.RequiredAcks = sarama.WaitForAll
brokers := []string{"localhost:29092"}
producer, err := sarama.NewAsyncProducer(brokers, config)
if err != nil {
// Should not reach here
panic(err)
}
defer func() {
if err := producer.Close(); err != nil {
// Should not reach here
panic(err)
}
}()
Я получаю это
[sarama] 2018/06/12 17:22: 05 Инициализация нового клиента
[sarama] 2018/06/12 17:22:05 клиент / метаданные, извлекающие метаданные для всех тем из брокера localhost: 29092
[sarama] 2018/06 /12 17:22:05 Подключено к брокеру на локальном хосте: 29092 (незарегистрировано)
[sarama] 2018/06/12 17:22:05 клиент / метаданные получили ошибку от брокера при получении метаданных: EOF
[sarama] 2018/06/12 17:22:05 Закрытое соединение с брокером localhost: 29092
{sarama] 2018/06/12 17:22:05 клиент / метаданные нет доступного брокера для отправкизапрос метаданных на
[sarama] 2018/06/12 17:22:06 Закрытие паники клиента: kafka: на клиенте закончились доступные брокеры для общения (доступен ли ваш кластер?)
маршрут 1 [выполняется]: main.main () /Users/benwornom/go/src/github.com/acstech/doppler-events/testprod/main.go:29 + 0x3ec статус выхода 2
Сарамасделал несколько разЭто лишний раз для создания клиента-производителя, но каждый раз не удается.
Мое понимание метода NewAsyncProducer от Sarama заключается в том, что он вызывает NewClient, который вызывается независимо от того, создаете ли вы Producer или Consumer.NewClient пытается собрать метаданные от брокера Kafka, что не удается в моей ситуации.Я знаю, что он подключается к брокеру Kafka, но как только он подключается, кажется, что он сломаетсяЛюбые советы будут полезны.У меня сильное сетевое соединение, я не могу думать ни о чем, мешающем серверу.Насколько я знаю, у меня есть только один брокер и один раздел для существующей темы.Я не думаю, что должен вручную назначать тему для брокера.Если мой клиент соединяется с брокером, почему я не могу установить постоянное соединение для моего производителя?
Это из файла журнала kafka, прямо перед его смертью.
__ consumer_offsets-5 -> Vector (1), connect-offsets-23 -> Vector (1), __consumer_offsets-43 -> Vector (1), __consumer_offsets-32 -> Vector (1), __consumer_offsets-21 ->Vector (1), __consumer_offsets-10 -> Vector (1), connect-offsets-20 -> Vector (1), __consumer_offsets-37 -> Vector (1), connect-offsets-9 -> Vector (1), подключиться-status-4 -> Vector (1), __consumer_offsets-48 -> Vector (1), __consumer_offsets-40 -> Vector (1), __consumer_offsets-29 -> Vector (1), __consumer_offsets-18 -> Vector (1), connect-offsets-14 -> Vector (1), __consumer_offsets-7 -> Vector (1), __consumer_offsets-34 -> Vector (1), __consumer_offsets-45 -> Vector (1), __consumer_offsets-23 -> Vector (1), connect-offsets-6 -> Vector (1), connect-status-1 -> Vector (1), connect-offsets-17 -> Vector (1), connect-offsets-0 -> Vector (1), connect-offsets-22 -> Vector (1), __consumer_offsets-26 -> Vector (1), connect-offsets-11 -> Vector (1), __consumer_offsets-15 -> Vector (1), __consumer_offsets-4 ->Vector (1), __consumer_offsets-42 -> Vectили (1), __consumer_offsets-9 -> Vector (1), __consumer_offsets-31 -> Vector (1), __consumer_offsets-20 -> Vector (1), connect-offsets-3 -> Vector (1), __consumer_offsets-1-> Vector (1), __consumer_offsets-12 -> Vector (1), connect-offsets-8 -> Vector (1), connect-offsets-19 -> Vector (1), connect-status-3 -> Vector (1), __confluent.support.metrics-0 -> Vector (1), __consumer_offsets-17 -> Vector (1), __consumer_offsets-28 -> Vector (1), __consumer_offsets-6 -> Vector (1), __consumer_offsets-39-> Vector (1), __consumer_offsets-44 -> Vector (1), connect-offsets-16 -> Vector (1), connect-status-0 -> Vector (1), connect-offsets-5 -> Vector (1), connect-offsets-21 -> Vector (1), __consumer_offsets-47 -> Vector (1), __consumer_offsets-36 -> Vector (1), __consumer_offsets-14 -> Vector (1), __consumer_offsets-25 ->Vector (1), __consumer_offsets-3 -> Vector (1), __consumer_offsets-30 -> Vector (1), __consumer_offsets-41 -> Vector (1), connect-offsets-13 -> Vector (1), connect-offsets-24 -> Vector (1), connect-offsets-2-> Vector (1), connect-configs-0 -> Vector (1), __consumer_offsets-11 -> Vector (1), __consumer_offsets-22 -> Vector (1), __consumer_offsets-33 -> Vector (1), __consumer_offsets-0 -> Вектор (1), connect-offsets-7 -> Вектор (1), connect-offsets-18 -> Вектор (1))) (kafka.controller.KafkaController) [36mkafka_1 | [0m [2018-06-12 20: 24: 47,461] DEBUG [ID контроллера = 1] Темы, не входящие в предпочитаемую реплику для брокера 1 Map () (kafka.controller.KafkaController) [36mkafka_1 | [0m [2018-06-12 20: 24: 47,462]]TRACE [Controller id = 1] Коэффициент дисбаланса лидера для брокера 1 составляет 0,0 (kafka.controller.KafkaController)