调用 GetMetadata 时禁用自动主题创建

Disable auto topic creation when calling GetMetadata

我正在为我的 Kafka 客户端使用 confluent golang。我在 kafka 集群中使用 AdminClient 到 create/delete/get 主题。这是我初始化 AdminClient

的代码
adminClient, err := kafka.NewAdminClient(&kafka.ConfigMap{
    "bootstrap.servers": 127.0.0.1:9092,
})

之后,我使用这个class创建并获取kafka集群中的所有主题。这是创建主题的代码:

ctx, cancel := context.WithCancel(context.Background())
defer cancel()

results, err := adminClient.CreateTopics(
    ctx,
    []kafka.TopicSpecification{{
        Topic:             topic,
        NumPartitions:     numPartitions,
        ReplicationFactor: replicationFactor}},
    kafka.SetAdminOperationTimeout(TimeOut),
)

之后,我又得到了话题信息:

result, err := adminClient.GetMetadata(&topic, false, 1000)

问题是:如果我得到一个以前不存在的话题,kafka会自动创建那个话题。这是我不想要的行为。请告诉我如何解决这个问题。

要禁用主题的自动创建,您应该更新您的代理配置以将 auto.create.topics.enable 设置为 false。看看the docs or this page