• À 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 Pulsar comme file d'attente de messages Milvus

Apache Pulsar 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 ; Pulsar reste toutefois entièrement pris en charge pour les utilisateurs qui le préfèrent. Pulsar est principalement utilisé avec Milvus Distributed (cluster) ; les déploiements autonomes utilisent généralement Woodpecker intégré ou RocksMQ.

Compatibilité des versions

Version de MilvusVersion de Pulsar prise en chargePar défaut
2.5.x et versions ultérieuresPulsar v3 (recommandée) ou Pulsar v2Pulsar v3 (via Helm / Milvus Operator)
2.4.x et antérieuresPulsar v2Pulsar v2

Depuis Milvus 2.5, le chart Helm de Milvus et Milvus Operator déploient Pulsar v3 par défaut ; Pulsar v2 reste compatible. Voir Mettre à niveau Pulsar de la version 2 à la version 3 et Continuer à utiliser Pulsar v2.

Déployer un cluster Milvus avec Pulsar à l'aide de Helm

Installation

Pour déployer un cluster Milvus utilisant Pulsar intégré (au lieu de Woodpecker), installez le chart Helm avec le nœud de streaming activé :

helm install my-release zilliztech/milvus \
  --set image.all.tag=v3.0.0 \
  --set pulsarv3.enabled=true \
  --set woodpecker.enabled=false \
  --set streaming.enabled=true \
  --set indexNode.enabled=false

Sur Kubernetes v1.25 et versions ultérieures, si vous rencontrez des problèmes liés à l’API PodDisruptionBudget (PDB) provenant du sous-chart Pulsar intégré, désactivez les politiques PDB de Pulsar :

helm install my-release zilliztech/milvus \
  --set pulsar.bookkeeper.pdb.usePolicy=false \
  --set pulsar.broker.pdb.usePolicy=false \
  --set pulsar.proxy.pdb.usePolicy=false \
  --set pulsar.zookeeper.pdb.usePolicy=false

Configuration

values.yaml Pour connecter Milvus à un service Pulsar externe, désactivez le Pulsar intégré et activez l'option « externalPulsar » dans une surc :

pulsarv3:
  enabled: false
externalPulsar:
  enabled: true
  host: <your_pulsar_host>
  port: 6650
  maxMessageSize: "5242880"  # 5 MB, maximum size of each message
  tenant: public
  namespace: default
helm install my-release zilliztech/milvus -f values.yaml

Désinstallation

helm uninstall my-release

Si vous avez utilisé le Pulsar intégré et que vous souhaitez supprimer ses données persistantes, supprimez les PVC Pulsar (nommés my-release-pulsarv3-*) :

kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...

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

Avec Milvus Operator, configurez Pulsar sous spec.dependencies.pulsar (pris en charge uniquement pour les clusters Milvus). pulsar prend en charge external et inCluster.

Pulsar externe

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      external: true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}

Pulsar interne (au sein du cluster)

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      inCluster:
        values:
          components:
            autorecovery: false
          zookeeper:
            replicaCount: 1
          bookkeeper:
            replicaCount: 1
          broker:
            replicaCount: 1
            configData:
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}

Appliquez la configuration (en supposant que le fichier soit 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 de 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 Pulsar et souhaitez le conserver, ne modifiez pas la file d’attente de messages pendant la mise à niveau.
  • Pulsar v2 → v3 : consultez la section Mise à niveau de Pulsar de la v2 à la v3; pour rester en v2, consultez la section Continuer à utiliser Pulsar v2.

Prochaines étapes