Kafka Multi broker setup with ec2 machine:等待节点分配超时。调用:createTopics

Kafka Multi broker setup with ec2 machine: Timed out waiting for a node assignment. Call: createTopics

我正在尝试在 AWS EC2 实例中使用 3 个代理节点和 1 个动物园管理员节点设置 kafka。对于每个经纪人,我都有以下 server.properties

kafka-1:

broker.id=0
listeners=PLAINTEXT_1://ec2-**-***-**-17.eu-central-1.compute.amazonaws.com:9092
advertised.listeners=PLAINTEXT_1://ec2-**-***-**-17.eu-central-1.compute.amazonaws.com:9092
listener.security.protocol.map=,PLAINTEXT_1:PLAINTEXT
inter.broker.listener.name=PLAINTEXT_1
zookeeper.connect=ec2-**-***-**-105.eu-central-1.compute.amazonaws.com:2181

kafka-2:

broker.id=1
listeners=PLAINTEXT_2://ec2-**-***-**-43.eu-central-1.compute.amazonaws.com:9093
advertised.listeners=PLAINTEXT_2://ec2-**-***-**-43.eu-central-1.compute.amazonaws.com:9093
listener.security.protocol.map=,PLAINTEXT_2:PLAINTEXT
inter.broker.listener.name=PLAINTEXT_2
zookeeper.connect=ec2-**-***-**-105.eu-central-1.compute.amazonaws.com:2181

kafka-3:

broker.id=2
listeners=PLAINTEXT_3://ec2-**-***-**-27.eu-central-1.compute.amazonaws.com:9094
advertised.listeners=PLAINTEXT_3://ec2-**-***-**-27.eu-central-1.compute.amazonaws.com:9094
listener.security.protocol.map=,PLAINTEXT_3:PLAINTEXT
inter.broker.listener.name=PLAINTEXT_3
zookeeper.connect=ec2-**-***-**-105.eu-central-1.compute.amazonaws.com:2181

动物园管理员:

tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181

当我 运行 在 zookeeper 中执行命令时,我看到它们已连接

我还通过代理端口从任何代理远程登录到其他代理,它们都已连接

但是,当我尝试创建具有 2 个复制因子的主题时,我得到 等待节点分配超时

我无法理解我的设置有什么问题,我在 zookeeper 中看到 3 个节点 运行,但在创建主题时遇到问题。顺便说一句,当我制作复制因子 1 时,我得到了同样的错误。我怎样才能确保我的集群一切正常?

telnet 检查端口是否打开很好,但它不会验证 Kafka 协议是否正常工作。您可以为此使用 kcat 实用程序,但修复包括

    每个代理的
  1. listeners 设置为 PLAINTEXT://:9092PLAINTEXT://0.0.0.0:9092,这意味着使用相同的端口
  2. 从侦听器映射和通告的侦听器中删除号码属性,以便每个经纪人都相同

我还建议考虑使用 Ansible/Terraform/Cloudformation 以确保您始终如一地修改集群,而不是手动编辑个别设置