kafka控制器代理无法创建主题

时间:2018-02-19 09:18:48

标签: docker apache-kafka

我正在使用一个拥有3个代理的Dockerized静态Kafka集群(0.11)。此群集的问题是,如果所有代理都在同一端口上运行,则控制器节点不允许我创建主题。

但是,如果所有代理都在不同的端口上运行,那么它运行正常。

我的问题是为什么它不在同一个端口上运行,虽然我在不同的节点上运行每个代理?

这是我的代理配置模板:

auto.leader.rebalance.enable=true
broker.id.generation.enable=false
broker.id={{KAFKA_BROKER_ID}}
auto.create.topics.enable=true
default.replication.factor={{DEFAULT_REPLICATION_FACTOR}}
min.insync.replicas={{MIN_INSYNC_REPLICAS}}
offsets.topic.replication.factor={{DEFAULT_REPLICATION_FACTOR}}
offsets.commit.required.acks={{MIN_INSYNC_REPLICAS}}
advertised.host.name={{KAFKA_ADVERTISED_HOST_NAME}}
delete.topic.enable={{KAFKA_DELETE_TOPIC_ENABLE}}
message.max.bytes={{KAFKA_MESSAGE_MAX_BYTES}}
replica.fetch.max.bytes={{KAFKA_MESSAGE_MAX_BYTES}}
port={{KAFKA_PORT}}
advertised.port={{KAFKA_ADVERTISED_PORT}}
log.dir=/data/{{KAFKA_BROKER_ID}}
log.dirs=/data/{{KAFKA_BROKER_ID}}
num.partitions={{KAFKA_NUM_PARTITIONS}}
log.retention.hours={{LOG_RETENTION_HOURS}}
zookeeper.connect={{ZOOKEEPER_CONNECTION_STRING}}{{ZOOKEEPER_CHROOT}}
zookeeper.connection.timeout.ms={{ZOOKEEPER_CONNECTION_TIMEOUT_MS}}
zookeeper.session.timeout.ms={{ZOOKEEPER_SESSION_TIMEOUT_MS}}
zookeeper.sync.time.ms=10000
controlled.shutdown.enable=true
group.max.session.timeout.ms={{GROUP_MAX_SESSION_TIMEOUT_MS}}
unclean.leader.election.enable=false
controller.socket.timeout.ms=120000
num.recovery.threads.per.data.dir=5
num.replica.fetchers=3

1 个答案:

答案 0 :(得分:0)

首先,您在配置文件中使用了已弃用的变量。移除advertised.host.nameadvertised.portport。您需要做的就是设置listeners=PLAINTEXT://:9092。如果端口9092在每个容器上公开,并且每个容器都在不同的节点上,并且具有不同的broker.id,并且连接到同一个ZooKeeper集群,那么您的代理应该能够相互通信而不需要任何问题。