【问题标题】:kafka controller broker is unable to create a topickafka 控制器代理无法创建主题
【发布时间】:2018-02-21 21:00:11
【问题描述】:

我正在使用具有 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

【问题讨论】:

  • 所以你是说每个 dockerized Kafka 容器都在不同的主机上?
  • 是的,每个都在不同的主机上。
  • 很难根据您提供的信息进行诊断。你能发布非工作代理的代理配置吗?

标签: docker apache-kafka


【解决方案1】:

首先,您在配置文件中使用了不推荐使用的变量。删除 advertised.host.name、advertised.port 和 port。您需要做的就是设置listeners=PLAINTEXT://:9092。如果端口 9092 在您的每个容器上公开,并且每个容器位于不同的节点上,具有不同的broker.id,并且连接到同一个 ZooKeeper 集群,那么您的代理应该能够毫无问题地相互通信.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-03
    • 2020-11-10
    • 2018-02-22
    相关资源
    最近更新 更多