• Informazioni su Milvus
  • Inizia
  • Concetti
  • Guida per l'utente
  • Importazione dei dati
  • Strumenti di intelligenza artificiale
  • Guida all'amministrazione
  • Strumenti
  • Integrazioni
  • Tutorial
  • Domande frequenti
  • API Reference

Utilizza Pulsar come coda di messaggi di Milvus

Apache Pulsar è uno dei backend per la coda di messaggi (WAL) supportati da Milvus. In Milvus 3.x, Woodpecker è la coda di messaggi predefinita; Pulsar rimane pienamente supportato per gli utenti che lo preferiscono. Pulsar viene utilizzato principalmente con Milvus Distributed (cluster); le distribuzioni standalone utilizzano in genere Woodpecker integrato o RocksMQ.

Compatibilità tra versioni

Versione di MilvusVersione di Pulsar supportataPredefinita
2.5.x e successivePulsar v3 (consigliata) o Pulsar v2Pulsar v3 (tramite Helm / Milvus Operator)
2.4.x e precedentiPulsar v2Pulsar v2

A partire da Milvus 2.5, il chart Helm di Milvus e Milvus Operator distribuiscono Pulsar v3 per impostazione predefinita; Pulsar v2 rimane compatibile. Vedere Aggiornamento di Pulsar dalla versione v2 alla v3 e Continuare a utilizzare Pulsar v2.

Distribuire un cluster Milvus con Pulsar utilizzando Helm

Installazione

Per distribuire un cluster Milvus che utilizza Pulsar integrato (anziché Woodpecker), installare il chart Helm con Streaming Node abilitato:

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

Su Kubernetes v1.25 e versioni successive, se si riscontrano problemi con l'API PodDisruptionBudget (PDB) derivanti dal sub-chart di Pulsar integrato, disabilitare le policy PDB di 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

Configurazione

Per collegare Milvus a un servizio Pulsar esterno, disabilitare Pulsar integrato e abilitare externalPulsar in un override di values.yaml:

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

Disinstallazione

helm uninstall my-release

Se è stato utilizzato il Pulsar integrato e si desidera rimuovere i dati persistenti, eliminare i PVC di Pulsar (denominati my-release-pulsarv3-*):

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

Distribuire un cluster Milvus con Pulsar utilizzando Milvus Operator

Con Milvus Operator, configurare Pulsar in spec.dependencies.pulsar (supportato solo per i cluster Milvus). pulsar supporta external e inCluster.

Pulsar esterno

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 interno (all’interno del 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: {}

Applicare la configurazione (supponendo che il file sia milvuscluster.yaml):

kubectl apply -f milvuscluster.yaml

Disinstallazione

kubectl delete milvus my-release

Note

  • Aggiornamento dalla versione 2.5.x alla 2.6.x: limitazioni relative alla coda dei messaggi: durante l'aggiornamento a Milvus v3.0.1, è necessario mantenere la coda dei messaggi attualmente in uso. Il passaggio a sistemi di coda dei messaggi diversi durante l'aggiornamento non è supportato. Il supporto per la modifica dei sistemi di coda dei messaggi sarà disponibile nelle versioni future. Se si utilizza Pulsar e si desidera mantenerlo, non modificare la coda dei messaggi durante l’aggiornamento.
  • Pulsar v2 → v3: consultare Aggiornamento di Pulsar dalla v2 alla v3; per rimanere alla v2, consultare Continuare a utilizzare Pulsar v2.

Prossimi passi