將 Kafka 用作 Milvus 的訊息佇列
Apache Kafka 是 Milvus 支援的訊息佇列(WAL)後端之一。 在 Milvus 3.x 中,Woodpecker是預設的訊息佇列;但對於偏好使用 Kafka 的使用者,系統仍提供完整支援。Kafka 主要用於 Milvus Distributed(叢集)環境;獨立部署則通常使用內嵌的 Woodpecker 或RocksMQ。
版本相容性
- Milvus 僅支援Kafka 2.x 和 3.x版本。
- Kafka 可透過 Helm 或 Milvus Operator 為 Milvus Distributed(叢集)進行配置。
使用 Helm 部署搭配 Kafka 的 Milvus 叢集
安裝與設定
若要使用外部 Kafka 服務,請先停用內建的 Pulsar,並在 `values.yaml ` 覆寫設定中啟用 `externalKafka `,然後使用該設定安裝 Milvus:
pulsarv3:
enabled: false
externalKafka:
enabled: true
brokerList: <your_kafka_address>:<your_kafka_port>
securityProtocol: SASL_SSL
sasl:
mechanisms: PLAIN
username: ""
password: ""
helm install my-release zilliztech/milvus -f values.yaml
有關 SASL/SSL 驗證的詳細資訊,請參閱《使用 SASL/SSL 連線至 Kafka》。
解除安裝
helm uninstall my-release
使用 Milvus Operator 部署帶有 Kafka 的 Milvus 叢集
透過 Milvus Operator,請在spec.dependencies.kafka (僅限叢集)中設定spec.dependencies.msgStreamType: "kafka" 並配置 Kafka。kafka 支援external 及inCluster 。
外部 Kafka
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
config:
kafka:
# securityProtocol supports: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
securityProtocol: PLAINTEXT
# saslMechanisms supports: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512
saslMechanisms: PLAIN
saslUsername: ""
saslPassword: ""
dependencies:
msgStreamType: "kafka"
kafka:
external: true
brokerList:
- "kafkaBrokerAddr1:9092"
- "kafkaBrokerAddr2:9092"
Milvus Operator v0.8.5 或更新版本支援 SASL 設定。
內部(叢集內)Kafka
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
msgStreamType: "kafka"
kafka:
inCluster:
values: {} # see https://artifacthub.io/packages/helm/bitnami/kafka
components: {}
config: {}
套用設定(假設檔案為milvuscluster.yaml ):
kubectl apply -f milvuscluster.yaml
解除安裝
kubectl delete milvus my-release
注意事項
- 從 2.5.x 升級至 2.6.x: 訊息佇列限制:升級至 Milvus v3.0.0 時,您必須維持當前的訊息佇列選擇。升級過程中不支援在不同的訊息佇列系統之間切換。未來版本將支援變更訊息佇列系統。 若您正在運行 Kafka 且希望繼續使用,請勿在升級過程中變更訊息佇列。
- 僅支援Kafka 2.x 和 3.x版本。
- 關於 SASL/SSL 連線,請參閱《使用 SASL/SSL 連線至 Kafka》。