无法在AWS EC2上连接到Kafka

时间:2019-12-30 09:56:44

标签: amazon-ec2 apache-kafka

我在AWS EC2上创建了一个Ubuntu VM,在同一VM中,我正在运行一个Zookeeper实例和一个Kafka实例。 Zookeeper和Kafka运行良好,我什至可以创建一个主题,但是,当我尝试从终端从本地计算机(macOS)连接时,出现以下消息:

Producer clientId=console-producer] Connection to node -1 (ec2-x-x-x-x.ap-southeast-2.compute.amazonaws.com/x.x.x.x:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

/config/server.properties 内部,我更改了 listeners advertised.listeners 的属性(见下图),正如我在许多文章中读到的与我的问题有关的主题,但仍然无法从本地计算机连接EC2上的Kafka:

enter image description here

我真的不知道我在这里想念什么...

Kafka版本:kafka_2.12-2.2.1

listeners=PLAINTEXT://PRIVATE_IP_ADDRESS:9092
advertised.listeners=PLAINTEXT://PUBLIC_IP_ADDRESS:9092

2 个答案:

答案 0 :(得分:0)

经过近三天的苦苦挣扎,我才发现问题所在。如果有人也遇到同样的问题,我通过在AWS上配置安全组并添加端口9092(默认情况下是Kafka运行的端口)来解决。 enter image description here

答案 1 :(得分:-1)

  

在您的图片中,您将advertised.listeners更改为私有ip而不是公共ip,并将listeners更改为私有ip

您只需将advertised.listeners更改为Ec2实例的公共ip:

advertised.listeners=PLAINTEXT://x.x.x.x:9092

由于kafka会要求客户端使用advertised listeners将其连接到云上,因此您无需将listeners更改为任何内容(只需对其进行注释)并重新启动kafka。