• 關於 Milvus
  • 開始使用
  • 概念
  • 使用者指南
  • 資料匯入
  • AI 工具
  • 管理指南
  • 工具
  • 整合功能
  • 教學指南
  • 常見問題
  • API Reference

將 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 支援externalinCluster

外部 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》。

下一步