• Über Milvus
  • Erste Schritte
  • Begriffe
  • Benutzerhandbuch
  • Datenimport
  • KI-Tools
  • Administrationshandbuch
  • Werkzeuge
  • Integrationen
  • Anleitungen
  • Häufig gestellte Fragen
  • API Reference

Verwendung von Kafka als Milvus-Nachrichtenwarteschlange

Apache Kafka ist eines der von Milvus unterstützten Backends für Nachrichtenwarteschlangen (WAL). In Milvus 3.x ist Woodpecker die Standard-Nachrichtenwarteschlange; Kafka wird jedoch weiterhin vollständig unterstützt, falls Nutzer dies bevorzugen. Kafka wird in erster Linie mit Milvus Distributed (Cluster) verwendet; bei eigenständigen Bereitstellungen kommen in der Regel das eingebettete Woodpecker oder RocksMQ zum Einsatz.

Versionskompatibilität

  • Milvus unterstützt ausschließlich Kafka 2.x und 3.x.
  • Kafka wird für Milvus Distributed (Cluster) über Helm oder den Milvus Operator konfiguriert.

Stellen Sie einen Milvus-Cluster mit Kafka mithilfe von Helm bereit

Installieren und konfigurieren

Um einen externen Kafka-Dienst zu verwenden, deaktivieren Sie den mitgelieferten Pulsar und aktivieren Sie „ externalKafka “ in einer „ values.yaml “-Überschreibung. Installieren Sie anschließend Milvus damit:

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

Einzelheiten zur SASL/SSL-Authentifizierung finden Sie unter „Verbindung zu Kafka mit SASL/SSL herstellen“.

Deinstallieren

helm uninstall my-release

Bereitstellung eines Milvus-Clusters mit Kafka mithilfe des Milvus Operators

Legen Sie mit dem Milvus Operator „ spec.dependencies.msgStreamType: "kafka" “ fest und konfigurieren Sie Kafka unter „ spec.dependencies.kafka “ (nur Cluster). „ kafka “ unterstützt „ external “ und „ inCluster “.

Externes 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"

SASL-Konfigurationen werden ab Milvus Operator v0.8.5 unterstützt.

Internes (clusterinternes) 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: {}

Wenden Sie die Konfiguration an (vorausgesetzt, die Datei heißt „ milvuscluster.yaml “):

kubectl apply -f milvuscluster.yaml

Deinstallieren

kubectl delete milvus my-release

Hinweise

  • Upgrade von 2.5.x auf 2.6.x: Einschränkungen bei der Nachrichtenwarteschlange: Beim Upgrade auf Milvus v3.0.0 müssen Sie Ihre aktuelle Wahl der Nachrichtenwarteschlange beibehalten. Ein Wechsel zwischen verschiedenen Nachrichtenwarteschlangensystemen während des Upgrades wird nicht unterstützt. Die Unterstützung für den Wechsel des Nachrichtenwarteschlangensystems wird in zukünftigen Versionen verfügbar sein. Wenn Sie Kafka einsetzen und beibehalten möchten, ändern Sie die Nachrichtenwarteschlange während des Upgrades nicht.
  • Es werden nur Kafka 2.x und 3.x unterstützt.
  • Informationen zur SASL/SSL-Verbindung finden Sie unter „Verbindung zu Kafka mit SASL/SSL herstellen“.

Was kommt als Nächstes