Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kafka console producer可以本地连接,但不能远程连接_Apache Kafka_Kafka Producer Api - Fatal编程技术网

Apache kafka Kafka console producer可以本地连接,但不能远程连接

Apache kafka Kafka console producer可以本地连接,但不能远程连接,apache-kafka,kafka-producer-api,Apache Kafka,Kafka Producer Api,我在IP地址1.2.3.4有一个Kafka节点。如果我从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 --

我在IP地址1.2.3.4有一个Kafka节点。如果我从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)从未向控制台/标准输出“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节点上本地运行console producer
但我收到了制作人的警告,并且在以下情况下,这些信息永远不会到达:

  • 我让控制台使用者在卡夫卡本地运行
  • 然后尝试从远程控制台生成器运行+发送消息
我已确认远程生产者可以通过网络访问端口9092处的Kafka节点


关于出现什么问题和/或如何排除故障有什么想法吗?

请检查这是否有帮助,谢谢@Gondola\u Ride,但是代理上没有配置SASL,而且,在这两种情况下,都会将相同的参数传递给生产者,因此在这两种情况下,针对同一Kafka节点和使用者的参数/配置是相同的。我不认为这是卡夫卡的配置问题,我在网络方面考虑的更多。请检查
iptables
服务,或者您是否碰巧使用了AWS EC2
安全组
设置?再次感谢,但是如果有防火墙,或者AWS SGs阻止访问,
telnet
命令将如何工作?!?但作为记录,是的,我已经确认没有防火墙,并且SGs配置正确。我在VM上运行kafka时也有类似的问题。您是否找到了0.11.0.0版的解决方案?