我使用以下設定創建了一個帶有 srimzi 運算子(版本 0.28.0)的 kafka 集群:
spec:
kafka:
config:
log.retention.hours: 5
auto.create.topics.enable: false
default.replication.factor: 3
min.insync.replicas: 2
假設不會自動創建主題,我添加了兩個主題定義:
_schemas對于模式注冊表__consumer_offsets針對消費群體
然而,在啟動集群后,我也看到了兩個自動創建的主題:
__strimzi_store_topic它由strimzi-store-topic---effb8e3e057afce1ecf67c3f5d8e4e3ff177fc55Kubernetes 資源表示。strimzi-topic-operator-kstreams-topic-store-changelog它由strimzi-topic-operator-kstreams-topic-store-changelog---b75e702040b99be8a9263134de3507fc0cc4017bKubernetes 資源表示。
附加到資源名稱的哈希表明它們是在外部創建的(不使用kind: KafkaTopicCRD)
uj5u.com熱心網友回復:
我在 Internet 上進行了搜索,auto.create.topics.enable第一個解釋此配置的作用的結果在這里。它說:
...有一個名為 auto.create.topics.enable 的屬性,允許在生產者嘗試向其中寫入資料時自動創建主題。這意味著如果生產者嘗試將記錄寫入名為客戶的主題并且該主題尚不存在 - 它將自動創建以允許寫入。而不是向客戶端回傳錯誤。
您看到的由 Strimzi 創建的主題并不是作為生產者嘗試寫入它們的自動結果創建的,而是因為 Strimzi 需要它們來實作其內部狀態管理目的,所以它明確地創建了它們。
您應該看到的是,如果您嘗試生成一個名為 的主題foo,它將失敗。
如果您改為auto.create.topics.enable: true使用生產者設定并嘗試相同的操作,它不會失敗,并且foo會由 Kafka 動態自動創建。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/425769.html
