搜索

5.2. 使用主题 Operator

download PDF

当您使用 KafkaTopic 资源创建、修改或删除主题时,Tpic Operator 可确保这些更改反映在 Kafka 集群中。

OpenShift 指南中的部署和升级 AMQ Streams 提供了部署 Topic Operator 的说明:

5.2.1. Kafka 主题资源

KafkaTopic 资源用于配置主题,包括分区和副本的数量。

KafkaTopic 的完整 schema 包括在 KafkaTopic schema 引用 中。

5.2.1.1. 为主题处理识别 Kafka 集群

KafkaTopic 资源包含一个标签,用于定义它所属的 Kafka 集群名称(从 Kafka 资源的名称衍生)。

例如:

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: topic-name-1
  labels:
    strimzi.io/cluster: my-cluster

该标签供主题 Operator 用于标识 KafkaTopic 资源、创建一个新主题,以及后续处理该主题。

如果标签与 Kafka 集群不匹配,主题 Operator 无法识别 KafkaTopic,且不会创建该主题。

5.2.1.2. Kafka 主题使用建议

处理主题时,应保持一致。始终在 OpenShift 中直接对 KafkaTopic 资源或主题运行。对于给定主题,避免在这两种方法之间进行定期切换。

使用反映主题性质的主题名称,并记住以后无法更改名称。

如果在 Kafka 中创建主题,请使用有效的 OpenShift 资源名称,否则 Topic Operator 将需要使用符合 OpenShift 规则的名称创建对应的 KafkaTopic

注意

OpenShift 中的标识符和名称建议在 OpenShift 社区文章中概述了标识符和名称

5.2.1.3. Kafka 主题命名约定

Kafka 和 OpenShift 分别为 Kafka 和 KafkaTopic.metadata.name 中的主题命名实施自己的验证规则。每个名称都无效。

使用 spec.topicName 属性,可以在 Kafka 中创建有效的主题,其名称对 OpenShift 中的 Kafka 主题无效。

spec.topicName 属性继承 Kafka 命名验证规则:

  • 名称不能超过 249 个字符。
  • Kafka 主题的有效字符为 ASCII 字母数字、._-
  • 该名称不能为. 或 . 但是, 可以在 名称中使用,如 exampleTopic. or .exampleTopic

不得更改 spec.topicName

例如:

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: topic-name-1
spec:
  topicName: topicName-1 1
  # ...
1
在 OpenShift 中,大写无效。

不能改为:

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: topic-name-1
spec:
  topicName: name-2
  # ...
注意

一些 Kafka 客户端应用程序(如 Kafka Streams)可以以编程方式在 Kafka 中创建主题。如果这些主题的名称具有无效的 OpenShift 资源名称,Topic Operator 会根据 Kafka 名称为其提供有效的 metadata.name。将替换无效字符,并在名称中附加一个哈希值。例如:

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: mytopic---c55e57fe2546a33f9e603caf57165db4072e827e
spec:
  topicName: myTopic
  # ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.