【问题标题】:Confluent go client - How to create a topic on a cluster?Confluent go client - 如何在集群上创建主题?
【发布时间】:2021-09-11 04:52:12
【问题描述】:

我们正在编写集成测试用例,使用 confluent kafka producer api 生成消息,然后使用 consumer api 使用本地 kafka docker 容器设置(来自 docker 映像 confluentinc/cp-kafka:6.2.0)。

在生成消息之前,我们需要在 kafka 容器中的集群上创建一个主题。


根据汇合documentation

POST /clusters/{cluster_id}/topics 创建一个新主题。

集群 id 的值应该是多少?是否有不同的 api 来创建集群 ID?

如果没有api,我们可以使用另一个docker容器创建kafka主题吗?

【问题讨论】:

标签: docker go apache-kafka kafka-consumer-api confluent-platform


【解决方案1】:

我不确定您为什么要查看 Go 客户端的 REST 代理文档。您可以在 Go 代码中完成这一切,无需其他容器

您需要的是一个 AdminClient,它像生产者/消费者一样采用引导服务器

a, err := kafka.NewAdminClient(&kafka.ConfigMap{"bootstrap.servers": broker})
...
results, err := a.CreateTopics( ... )

例如https://github.com/confluentinc/confluent-kafka-go/blob/master/examples/admin_create_topic/admin_create_topic.go

【讨论】:

  • 那么,只需要一个来自图像confluentinc/cp-kafka:6.2.0 的kafka 容器就足够了吗?
  • 您可以使用任何 Kafka 容器。不确定这与您需要在 Go 中编写测试代码的问题有什么关系。
  • 目标是编写创建新主题的测试代码,在该主题中生成消息并使用来自该主题的消息。所以,我需要一个本地 kafka 容器来执行此操作。
  • 当然,您可以使用任何 Kafka 容器。如果它是专门用于测试的,您可能需要结帐testcontainers-go
  • 那么,testcontainers-go 不需要编写 docker-compose 文件来支持容器?
猜你喜欢
  • 1970-01-01
  • 2021-02-05
  • 2021-07-21
  • 2017-11-26
  • 2018-07-02
  • 2021-02-21
  • 1970-01-01
  • 2017-01-19
  • 2019-06-09
相关资源
最近更新 更多