我有一个Kafka节点,比如IP地址1.2.3.4 . 如果我从2个不同的终端窗口SSH到该节点,并从1个终端运行控制台消费者,从另一个终端运行控制台 生产环境 者,一切都很好:

# Run the consumer from terminal 1
kafka-console-consumer.sh --zookeeper zkA:2181 --topic simpletest

# Run the producer from terminal 2
kafka-console-producer.sh --broker-list localhost:9092 --topic simpletest
# Now I can enter messages into terminal 2 and see them show up in terminal 1 (the consumer)

如果我杀死控制台 生产环境 者,但让消费者继续运行,然后SSH进入另一台服务器(比如IP地址为5.6.7.8),然后运行 生产环境 者,然后尝试向Kafka发送消息(以便运行消费者选择它,我收到以下警告:

# Run the producer from a terminal on 5.6.7.8
kafka-console-producer.sh --broker-list 1.2.3.4:9092 --topic simpletest

# Now enter a simple string message to try and send to consumer running on Kafka
hello
[2017-01-25 22:27:21,439] WARN Bootstrap broker 1.2.3.4:9092 disconnected (org.apache.kafka.clients.NetworkClient)
[2017-01-25 22:27:21,439] WARN Bootstrap broker 1.2.3.4:9092 disconnected (org.apache.kafka.clients.NetworkClient)
[2017-01-25 22:27:21,439] WARN Bootstrap broker 1.2.3.4:9092 disconnected (org.apache.kafka.clients.NetworkClient)
...

在我杀死制作人之前,这些警告一直在生成 . 最重要的是,消息永远不会到达,消费者(再次,在Kafka节点,终端1上运行)从不向控制台/ STDOUT发出“hello”消息 .

我已确认5.6.7.8的服务器具有1.2.3.4:9092的网络访问权限:

telnet 1.2.3.4 9092
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'.

总之,在以下情况下一切正常:

  • 我可以在Kafka节点上本地运行控制台使用者

  • 我可以在Kafka节点上本地运行控制台 生产环境 者

但是我收到 生产环境 者警告,并且消息永远不会到达:

  • 我有在Kafka本地运行的控制台消费者,

  • 然后尝试从远程控制台 生产环境 者运行发送消息 .

我已确认远程 生产环境 者可以通过端口9092对Kafka节点进行网络访问 .

Any ideas as to what's going wrong and/or how I could troubleshoot?