9.4. Kafka トピックの設定
KafkaTopic リソースのプロパティーを使用して、Kafka トピックを設定します。KafkaTopic 内のトピック設定に加えられた変更は、Kafka に伝播されます。
oc apply を使用すると、トピックを作成または編集できます。oc delete を使用すると、既存のトピックを削除できます。
以下に例を示します。
-
oc apply -f <topic_config_file> -
oc delete KafkaTopic <topic_name>
トピックを削除できるようにするには、Kafka リソースの spec.kafka.config で delete.topic.enable を true (デフォルト) に設定する必要があります。
この手順では、10 個のパーティションと 2 つのレプリカがあるトピックを作成する方法を説明します。
この手順は、トピック管理の双方向モードと (プレビュー) 単方向モードでも同じです。
作業を開始する前に
KafkaTopic リソースでは、次の変更は許可されません。
-
spec.topicNameで定義されたトピックの名前を変更します。spec.topicNameとstatus.topicNameの不一致が検出されます。 -
spec.partitionsを使用してパーティションの数を減らす (Kafka ではサポートされていません)。 -
spec.replicasで指定されたレプリカの数を変更します。
キーを持つトピックの spec.partitions を増やすと、レコードのパーティション分割が変更され、特にトピックでセマンティックパーティション分割が使用されている場合に問題が発生する可能性があります。
前提条件
- mTLS 認証と TLS 暗号化を使用する Kafka ブローカーリスナーで設定された実行中の Kafka クラスター。
- 実行中の Topic Operator (通常は、Entity Operator とともにデプロイされます)。
-
トピックを削除する場合は、
Kafkaリソースのspec.kafka.configがdelete.topic.enable=true(デフォルト) である必要があります。
手順
KafkaTopicリソースを設定します。Kafka トピックの設定例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ヒントトピックを変更する場合、
oc get kafkatopic my-topic-1 -o yamlを使用してリソースの現在のバージョンを取得できます。OpenShift で
KafkaTopicリソースを作成します。oc apply -f <topic_config_file>
oc apply -f <topic_config_file>Copy to Clipboard Copied! Toggle word wrap Toggle overflow トピックの準備完了ステータスが
Trueに変わるまで待ちます。oc get kafkatopics -o wide -w -n <namespace>
oc get kafkatopics -o wide -w -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow Kafka トピックのステータス
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-1 my-cluster 10 3 True my-topic-2 my-cluster 10 3 my-topic-3 my-cluster 10 3 True
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-1 my-cluster 10 3 True my-topic-2 my-cluster 10 3 my-topic-3 my-cluster 10 3 TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow READY出力がTrueを示す場合、トピックの作成は成功です。READY列が空白のままの場合は、リソース YAML または Topic Operator ログからステータスの詳細を取得してください。ステータスメッセージには、現在のステータスの理由の詳細が示されます。
oc get kafkatopics my-topic-2 -o yaml
oc get kafkatopics my-topic-2 -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow NotReadyステータスのトピックの詳細Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、トピックの準備ができていない理由は、
KafkaTopic設定で元のパーティション数が減ったためです。Kafka はこれをサポートしていません。トピック設定をリセットした後、ステータスはトピックの準備ができていることを示します。
oc get kafkatopics my-topic-2 -o wide -w -n <namespace>
oc get kafkatopics my-topic-2 -o wide -w -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow トピックのステータス更新
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-2 my-cluster 10 3 True
NAME CLUSTER PARTITIONS REPLICATION FACTOR READY my-topic-2 my-cluster 10 3 TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 詳細のフェッチではメッセージが表示されない
oc get kafkatopics my-topic-2 -o yaml
oc get kafkatopics my-topic-2 -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow READYステータスのトピックの詳細Copy to Clipboard Copied! Toggle word wrap Toggle overflow