5.2.2.5. 处理主题的更改


Topic Operator 需要解决的一个根本问题是没有单一的事实来源: KafkaTopic 资源和 Kafka 主题都可以独立于主题 Operator 进行修改。复杂的情况是,Topic Operator 可能无法实时观察每个末尾的更改。例如,当主题 Operator 停机时。

为解决这个问题,主题 Operator 会维护主题存储中每个主题的信息。当 Kafka 集群或 OpenShift 中发生更改时,它会同时查看其他系统和主题存储的状态,以确定需要更改什么内容才能保持所有同步。只要 Topic Operator 启动并在运行期间定期进行同样的操作。

例如,假设 Topic Operator 没有运行,并创建一个名为 my-topicKafkaTopic。当主题 Operator 启动时,主题存储不包含有关 my-topic 的信息,因此它可以推断 KafkaTopic 是在上次运行后创建的。Topic Operator 会创建与 my-topic 对应的主题,并将 my-topic 的元数据存储在主题存储中。

如果您更新 Kafka 主题配置或通过 KafkaTopic 自定义资源应用更改,则在 Kafka 集群协调后会更新主题存储。

主题存储还允许主题 Operator 管理在 Kafka 主题中更改主题配置并通过 OpenShift KafkaTopic 自定义资源 进行更新 的场景,只要更改不兼容。例如,可以对同一主题配置键进行更改,但更改不同的值。对于不兼容的更改,Kafka 配置将具有优先权,并且会相应地更新 KafkaTopic

注意

您还可以通过 oc delete -f KAFKA-TOPIC-CONFIG-FILE 命令使用 KafkaTopic 资源删除主题。要做到这一点,在 Kafka 资源的 spec.kafka.config 中必须将 delete.topic. enable 设置为 true (默认)。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.