Kafka控制台生产者可以在本地连接但不能远程连接

时间:2017-01-25 22:43:14

标签: apache-kafka kafka-producer-api

我有一个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。

我已确认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节点进行网络访问。

关于出了什么问题和/或我如何解决问题的想法?

0 个答案:

没有答案