10.3. 处理对主题的更改
配置更改仅进入一个方向:从 KafkaTopic
资源到 Kafka 主题。对 KafkaTopic
资源外管理的 Kafka 主题的任何更改都会被恢复。
10.3.1. 降级到使用内部主题存储主题元数据的 Apache Kafka 版本的 Streams 复制链接链接已复制到粘贴板!
如果您要恢复到早于 2.8 的 Apache Kafka 的 Streams 版本,它使用内部主题存储主题来保存主题元数据,您仍将 Cluster Operator 降级为之前的版本,然后将 Kafka 代理和客户端应用程序降级到以前的 Kafka 版本。
如果您要恢复到 1.7 之前的 Apache Kafka 的 Streams 版本,其使用 ZooKeeper 进行主题元数据存储,您仍将 Cluster Operator 降级到之前的版本,然后将 Kafka 代理和客户端应用程序降级到以前的 Kafka 版本。
但是,还必须使用 kafka-topics
命令删除为主题存储创建的主题,指定 Kafka 集群的 bootstrap 地址。例如:
oc run kafka-admin -ti --image=registry.redhat.io/amq-streams/kafka-38-rhel9:2.8.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --delete
oc run kafka-admin -ti --image=registry.redhat.io/amq-streams/kafka-38-rhel9:2.8.0 --rm=true --restart=Never -- ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi-topic-operator-kstreams-topic-store-changelog --delete && ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic __strimzi_store_topic --delete
该命令必须与监听程序的类型以及用于访问 Kafka 集群的身份验证对应。
主题 Operator 将从 Kafka 中的主题状态重建 ZooKeeper 主题元数据。
10.3.3. 自动创建主题 复制链接链接已复制到粘贴板!
应用程序可以在 Kafka 集群中触发自动创建主题。默认情况下,Kafka 代理配置 auto.create.topics.enable
被设置为 true
,允许代理在应用程序尝试从不存在的主题生成或消耗时自动创建主题。应用程序也可能使用 Kafka AdminClient
自动创建主题。当应用程序与 KafkaTopic
资源一起部署时,在主题 Operator 可以响应 KafkaTopic
前,集群中的自动主题创建可能会发生。
为应用部署创建的主题最初创建有默认主题配置。如果主题 Operator 会尝试根据应用程序部署中包含的 KafkaTopic
资源规格重新配置主题,则操作可能会失败,因为不允许对配置进行所需的更改。例如,如果更改意味着减少主题分区的数量。因此,建议在 Kafka 集群配置中禁用 auto.create.topics.enable
。