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 为什么可以';不能正确使用消费者与卡夫卡?_Apache Kafka - Fatal编程技术网

Apache kafka 为什么可以';不能正确使用消费者与卡夫卡?

Apache kafka 为什么可以';不能正确使用消费者与卡夫卡?,apache-kafka,Apache Kafka,有3台卡夫卡服务器 在所有3台服务器上设置/etc/hosts 192.168.0.1 kafka1 192.168.0.2 kafka2 192.168.0.3 kafka3 在所有配置中都安装了zookeeper和kafka /usr/local/kafka_2.12-2.6.0/config/server.properties 卡夫卡1 卡夫卡2 卡夫卡3 启动zookeeper和kafka后,创建一个新主题 [kafka@kafka1 ~]$ bin/kafka-topics.s

有3台卡夫卡服务器

在所有3台服务器上设置
/etc/hosts

192.168.0.1  kafka1
192.168.0.2  kafka2
192.168.0.3  kafka3
在所有配置中都安装了zookeeper和kafka

/usr/local/kafka_2.12-2.6.0/config/server.properties

卡夫卡1 卡夫卡2 卡夫卡3 启动zookeeper和kafka后,创建一个新主题

[kafka@kafka1 ~]$ bin/kafka-topics.sh --create --zookeeper kafka1:2181,kafka2:2181,kafka3:2181 --replication-factor 1 --partitions 6 --topic topic1 --config cleanup.policy=delete --config delete.retention.ms=60000
检查所有三个节点上的群集状态

卡夫卡1 卡夫卡2 卡夫卡3 但是在测试集群时,在kafka1上创建了一个生产者

[kafka@kafka1 ~]$ bin/kafka-console-producer.sh --broker-list kafka1:9092 --topic topic1
>
在任何其他节点(包括)当前kafka1节点上,运行consumer

bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic topic1
得到了相同的错误:

# kafka1
[2020-08-21 02:09:57,299] WARN [Consumer clientId=consumer-console-consumer-39789-1, groupId=console-consumer-39789] Connection to node 2147483645 (kafka2/192.168.0.2:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
# kafka2
[2020-08-21 03:05:00,573] WARN [Consumer clientId=consumer-console-consumer-71891-1, groupId=console-consumer-71891] Connection to node -1 (kafka1/192.168.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
# kafka3
[2020-08-21 03:05:14,331] WARN [Consumer clientId=consumer-console-consumer-55574-1, groupId=console-consumer-55574] Connection to node -1 (kafka1/192.168.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
/usr/local/kafka_2.12-2.6.0/config/server.properties
中,我还尝试设置为

listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092
在所有3个节点上。但是同样的问题。

监听器应该表示生产者和消费者可以访问的节点FQDN和端口。 当制作人/消费者连接到卡夫卡时,如您的帖子中所示:

bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic topic1
它打开到kafka1:9092的连接,然后从Kafka获得集群的映射,其中包含所有代理、它们的rfqdn、端口以及每个代理所属的主题分区

您成功地创建了主题,这是使用zookeeper完成的,而且很有效

根据您的警告日志,“broker1,2,3”解析为192.168.0.1/2/3,因此IP解析正常

尝试检查端口9092上的网络连接: 从broker1运行:“telnet broker2 9092”

或运行producer命令访问远程代理,即:

[kafka@**kafka1** ~]$ bin/kafka-console-producer.sh --broker-list **kafka2**:9092 --topic topic1

这将告诉您是否能够在端口9092上从broker1连接到broker2。

尝试
listeners=PLAINTEXT://0.0.0.0:9092
@haoyuwang相同。播发的侦听器应为FQDN。
[kafka@kafka1 ~]$ bin/kafka-console-producer.sh --broker-list kafka1:9092 --topic topic1
>
bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic topic1
# kafka1
[2020-08-21 02:09:57,299] WARN [Consumer clientId=consumer-console-consumer-39789-1, groupId=console-consumer-39789] Connection to node 2147483645 (kafka2/192.168.0.2:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
# kafka2
[2020-08-21 03:05:00,573] WARN [Consumer clientId=consumer-console-consumer-71891-1, groupId=console-consumer-71891] Connection to node -1 (kafka1/192.168.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
# kafka3
[2020-08-21 03:05:14,331] WARN [Consumer clientId=consumer-console-consumer-55574-1, groupId=console-consumer-55574] Connection to node -1 (kafka1/192.168.0.1:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://localhost:9092
bin/kafka-console-consumer.sh --bootstrap-server kafka1:9092 --topic topic1
[kafka@**kafka1** ~]$ bin/kafka-console-producer.sh --broker-list **kafka2**:9092 --topic topic1