Устранение неполадок Kafka

Введение в Apache Kafka

Mike Metzger

Data Engineering Consultant

«Удобное» поведение

  • Kafka старается быть удобной для пользователей
  • Иногда это создаёт проблемы
  • По умолчанию топик не обязан существовать до записи
  • Представьте, что произойдёт при опечатке в имени топика (например, ordrs вместо orders)

Фотография растерянной собаки

1 Изображение предоставлено Dex Ezekiel на Unsplash
Введение в Apache Kafka

Пример «удобного» поведения

$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
orders
$ echo "Test message" | bin/kafka-console-producer.sh 
   --bootstrap-server localhost:9092 \
   --topic ordrs
$ bin/kafka-topics.sh --bootstrap-server localhost:9092 --list
orders
ordrs
Введение в Apache Kafka

Проблемы с подключением

  • Kafka — сетевой сервис
  • Любые сетевые сбои могут нарушить работу Kafka
  • Анализируйте вывод команд, чтобы выявить возможные проблемы

bin\kafka-topics.sh --bootstrap-server localhost:9092 --list

WARN [AdminClient clientId=adminclient-1] 
  Connection to node -1 (localhost/127.0.0.1:9092) could not be established.
  Node may not be available. (org.apache.kafka.clients.NetworkClient)
  • Убедитесь, что сервис Kafka запущен (ps ax | grep kafka, netstat -tlnp | grep 9092)
  • Проверьте настройки брандмауэра
  • Убедитесь в правильности порта и IP-адреса
Введение в Apache Kafka

Другие распространённые проблемы

  • Потребители:
    • Используйте --from-beginning, если нужны старые сообщения
    • Помните об опции --max-messages для чтения заданного числа сообщений
  • Все инструменты:
    • Не забывайте указывать --bootstrap-server
    • Большинство сообщений об ошибках понятны и указывают на вероятные решения
    • У инструментов есть опция --help для получения подробной справки
Введение в Apache Kafka

Давайте потренируемся!

Введение в Apache Kafka

Preparing Video For Download...