Kafka 故障排查

Apache Kafka 入门

Mike Metzger

Data Engineering Consultant

"贴心"的行为

  • Kafka 尽力为用户提供便利
  • 但有时反而引发问题
  • 默认情况下,写入前主题无需预先存在
  • 想想拼错主题名会发生什么(如将 orders 写成 ordrs

一只困惑的狗的图片

1 图片来源:Unsplash 的 Dex Ezekiel
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 kafkanetstat -tlnp | grep 9092
  • 检查防火墙问题
  • 核对端口/IP 是否正确
Apache Kafka 入门

其他常见问题

  • 消费者:
    • 需要读取旧消息时使用 --from-beginning
    • 记住 --max-messages 可限制读取条数
  • 所有工具:
    • 别忘了包含 --bootstrap-server
    • 大多数错误信息清晰,能指向可能的解决方案
    • 工具有 --help 获取更多详情
Apache Kafka 入门

Passons à la pratique !

Apache Kafka 入门

Preparing Video For Download...