• À propos de Milvus
  • Commencer
  • Concepts
  • Guide de l'utilisateur
  • Importation de données
  • Outils d'IA
  • Guide d'administration
  • Outils
  • Intégrations
  • Tutoriels
  • Foire aux questions
  • API Reference

Utiliser Kafka comme file d'attente de messages Milvus

Apache Kafka est l'un des backends de file d'attente de messages (WAL) pris en charge par Milvus. Dans Milvus 3.x, Woodpecker est la file d’attente de messages par défaut ; Kafka reste toutefois entièrement pris en charge pour les utilisateurs qui le préfèrent. Kafka est principalement utilisé avec Milvus Distributed (cluster) ; les déploiements autonomes utilisent généralement Woodpecker intégré ou RocksMQ.

Compatibilité des versions

  • Milvus prend en charge uniquement les versions 2.x et 3.x de Kafka.
  • Kafka est configuré pour Milvus Distributed (cluster) via Helm ou Milvus Operator.

Déployer un cluster Milvus avec Kafka à l’aide de Helm

Installation et configuration

Pour utiliser un service Kafka externe, désactivez Pulsar intégré et activez externalKafka dans une redéfinition de ` values.yaml `, puis installez Milvus avec ce service :

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

Pour plus d’informations sur l’authentification SASL/SSL, consultez la section « Se connecter à Kafka avec SASL/SSL ».

Désinstallation

helm uninstall my-release

Déployer un cluster Milvus avec Kafka à l’aide de Milvus Operator

Avec Milvus Operator, définissez spec.dependencies.msgStreamType: "kafka" et configurez Kafka sous spec.dependencies.kafka (cluster uniquement). kafka prend en charge external et inCluster.

Kafka externe

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"

Les configurations SASL sont prises en charge dans Milvus Operator v0.8.5 ou version ultérieure.

Kafka interne (au sein du cluster)

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: {}

Appliquez la configuration (en supposant que le fichier s'appelle milvuscluster.yaml) :

kubectl apply -f milvuscluster.yaml

Désinstallation

kubectl delete milvus my-release

Remarques

  • Mise à niveau de la version 2.5.x vers la version 2.6.x : limitations relatives à la file d’attente de messages: lors de la mise à niveau vers Milvus v3.0.0, vous devez conserver votre choix actuel de file d’attente de messages. Le passage d’un système de file d’attente de messages à un autre pendant la mise à niveau n’est pas pris en charge. La prise en charge du changement de système de file d’attente de messages sera disponible dans les versions futures. Si vous utilisez Kafka et souhaitez le conserver, ne modifiez pas la file d'attente de messages pendant la mise à niveau.
  • Seules les versions 2.x et 3.x de Kafka sont prises en charge.
  • Pour la connectivité SASL/SSL, consultez la section « Se connecter à Kafka avec SASL/SSL ».

Prochaines étapes