我有一个kafka节点,比如说,ip地址1.2.3.4。如果我从两个不同的终端窗口ssh到该节点,并从一个终端运行控制台使用者,从另一个终端运行控制台生产者,那么一切都很好:
# 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节点上本地运行console consumer
我可以在kafka节点上本地运行console producer
但我收到了制作人的警告,消息永远不会在以下情况下到达:
我在Kafka的本地运行控制台,
然后尝试从远程控制台生产者运行+发送消息。
我已经确认远程生产者可以通过网络访问端口9092上的kafka节点。
关于出了什么问题和/或如何排除故障,有什么想法吗?
暂无答案!
目前还没有任何答案,快来回答吧!