首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kafka主题创建最佳实践

Kafka主题创建最佳实践
EN

Stack Overflow用户
提问于 2018-01-29 17:51:59
回答 3查看 12.3K关注 0票数 10

在为Apache Kafka创建主题时,什么被认为是最佳实践?

每个人都允许自动创建主题吗?或者你是如何做到的?是否将topic-creation-step与kafka-instance的启动绑定?

我有一个基于docker的Kafka- is,它可以被多个应用程序使用。如何将每个应用程序的主题创建与Kafka容器的启动分开?看看融合的音乐-演示,他们通过旋转一个新的kafka-image来创建主题,调用" create -topic-script“,然后让容器死亡。这感觉有点“老生常谈”,但这是唯一的方法吗?

问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-29 22:04:48

为Apache Kafka创建主题时,什么被认为是最佳实践?每个人都允许自动创建主题吗?或者你是如何做到的?

这取决于你在做什么。您绝对可以使用主题自动创建,但自动创建的主题将在分区和复制因子方面具有缺省的代理范围配置。

对于Kafka Streams,建议在应用启动前手动创建topics的Confluent engineer writes

我还想指出的是,强烈建议您在启动Streams应用程序之前不要使用auto topic create

Streams,而是手动创建所有输入/输出主题。

有关更多详细信息,请参阅http://docs.confluent.io/current/streams/developer-guide.html#managing-topics-of-a-kafka-streams-application

关于以下内容:

您是否将主题创建步骤与kafka实例的启动捆绑在一起?

是。如果您有一个Java应用程序,那么您可以在启动应用程序之前在应用程序的main方法中使用AdminClient。如果您有其他类型的应用程序,则可以在应用程序之前运行一个调用bin/kafka-topics.sh的初始化脚本。如果你使用Kubernetes,你可以使用Kubernetes Init Container。但很明显,有很多方法可以做到这一点。

这感觉有点“老土”,但这是唯一的办法吗?

我不认为这很老套。我认为,初始化步骤是很正常的。

最后,还需要注意的是,您可能希望在主题上配置保留策略。这可以使用代理范围内的默认值或基于每个主题来完成:https://stackoverflow.com/a/48504305/741970

票数 13
EN

Stack Overflow用户

发布于 2018-01-29 21:08:39

创建Kafka主题有两种方式,每种方式都取决于您的需求:

  • 将属性auto.create.topics.enable设置为true (默认情况下应为true),然后在将值发布到代理时创建主题。然后,请务必检查以下属性:对于已创建主题的默认副本数为default.replication.factor,对于默认副本数为num.partitions使用随Kafka提供的实用程序手动创建主题。

这是手动创建主题的官方方式:

代码语言:javascript
运行
复制
bin/kafka-topics.sh --create --zookeeper <your_zookeeper_host>:2181 --replication-factor <number_of_replicas> --partitions <number_of_partitions> --topic <name_of_your_topic>
票数 2
EN

Stack Overflow用户

发布于 2022-01-24 00:38:49

管理主题的另一种选择是采用声明性的git-ops方法。这将主题管理与应用程序的运行时完全分离。我认为,这是否构成“最佳实践”,取决于具体情况。对于一些用例/团队来说,这可以很好地工作。

有关支持此方法的工具,请参阅以下问题/答案。

How to declaratively manage Kafka topics?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48498414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档