• À 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

Configurer le stockage des messages avec Docker Compose ou Helm

Milvus utilise une file d'attente de messages pour gérer les journaux des modifications récentes, générer des journaux en continu et proposer des abonnements aux journaux. À partir de la version 3.0.x de Milvus, Woodpecker est la file d'attente de messages recommandée par défaut ; cette rubrique explique comment configurer Pulsar ou Kafka avec Docker Compose ou Helm.

Vous pouvez configurer Pulsar avec Docker Compose ou sur K8s, et configurer Kafka sur K8s.

Limitations de la file d’attente de messages: lors de la mise à niveau vers Milvus v3.0.2, vous devez conserver votre choix actuel de file d’attente de messages. Le changement de système de file d’attente de messages 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.

Configurer Pulsar avec Docker Compose

1. Configurer Pulsar

Pour configurer Pulsar avec Docker Compose, indiquez vos valeurs dans la section « pulsar » du fichier « milvus.yaml » situé dans le répertoire « milvus/configs ».

pulsar:
  address: localhost # Address of pulsar
  port: 6650 # Port of pulsar
  maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.

Consultez la section « Configurations relatives à Pulsar » pour plus d’informations.

2. Lancer Milvus

Exécutez la commande suivante pour démarrer Milvus en utilisant les configurations Pulsar.

docker compose up
Les configurations ne prennent effet qu’après le démarrage de Milvus. Consultez la section Démarrer Milvus pour plus d’informations.

Configurer Pulsar avec Helm

Pour les clusters Milvus sur K8s, vous pouvez configurer Pulsar dans la même commande qui lance Milvus. Vous pouvez également configurer Pulsar à l’aide du fichier « values.yml » situé dans le chemin /charts/milvus du référentiel milvus-helm avant de lancer Milvus.

Pour plus de détails sur la configuration de Milvus à l’aide de Helm, reportez-vous à la section « Configurer Milvus avec les charts Helm ». Pour plus de détails sur les éléments de configuration liés à Pulsar, reportez-vous à la section « Configurations liées à Pulsar ». |

Utilisation du fichier YAML

  1. Configurez la section ` externalConfigFiles ` dans le fichier ` values.yaml `.
extraConfigFiles:
  user.yaml: |+
    pulsar:
      address: localhost # Address of pulsar
      port: 6650 # Port of Pulsar
      webport: 80 # Web port of pulsar, if you connect direcly without proxy, should use 8080
      maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
      tenant: public
      namespace: default    
  1. Après avoir configuré les sections précédentes et enregistré le fichier ` values.yaml `, exécutez la commande suivante pour installer Milvus en utilisant les configurations Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurer Woodpecker avec Helm

Pour les clusters Milvus sur K8s, vous pouvez configurer Woodpecker dans la même commande qui démarre Milvus. Vous pouvez également configurer Woodpecker à l’aide du fichier ` values.yml ` situé dans le chemin `/charts/milvus` du référentiel milvus-helm avant de démarrer Milvus.

Pour plus de détails sur la configuration de Milvus à l’aide de Helm, reportez-vous à la section Configurer Milvus avec les charts Helm. Pour plus de détails sur les éléments de configuration liés à Woodpecker, reportez-vous aux configurations relatives à Woodpecker. |

Utilisation du fichier YAML

  1. Configurez la section ` externalConfigFiles ` dans le fichier ` values.yaml `.
extraConfigFiles:
  user.yaml: |+
    woodpecker:
      meta:
        type: etcd # The Type of the metadata provider. currently only support etcd.
        prefix: woodpecker # The Prefix of the metadata provider. default is woodpecker.
      client:
        segmentAppend:
          queueSize: 10000 # The size of the queue for pending messages to be sent of each log.
          maxRetries: 3 # Maximum number of retries for segment append operations.
        segmentRollingPolicy:
          maxSize: 256M # Maximum size of a segment.
          maxInterval: 10m # Maximum interval between two segments, default is 10 minutes.
          maxBlocks: 1000 # Maximum number of blocks in a segment
        auditor:
          maxInterval: 10s # Maximum interval between two auditing operations, default is 10 seconds.
      logstore:
        segmentSyncPolicy:
          maxInterval: 200ms # Maximum interval between two sync operations, default is 200 milliseconds.
          maxIntervalForLocalStorage: 10ms # Maximum interval between two sync operations local storage backend, default is 10 milliseconds.
          maxBytes: 256M # Maximum size of write buffer in bytes.
          maxEntries: 10000 # Maximum entries number of write buffer.
          maxFlushRetries: 5 # Maximum number of flush retries.
          retryInterval: 1000ms # Maximum interval between two retries. default is 1000 milliseconds.
          maxFlushSize: 2M # Maximum size of a fragment in bytes to flush.
          maxFlushThreads: 32 # Maximum number of threads to flush data
        segmentCompactionPolicy:
          maxSize: 2M # The maximum size of the merged files.
          maxParallelUploads: 4 # The maximum number of parallel upload threads for compaction.
          maxParallelReads: 8 # The maximum number of parallel read threads for compaction.
        segmentReadPolicy:
          maxBatchSize: 16M # Maximum size of a batch in bytes.
          maxFetchThreads: 32 # Maximum number of threads to fetch data.
      storage:
        type: minio # The Type of the storage provider. Valid values: [minio, local]
        rootPath: /var/lib/milvus/woodpecker # The root path of the storage provider.    
  1. Après avoir configuré les sections précédentes et enregistré le fichier ` values.yaml `, exécutez la commande suivante pour installer Milvus en utilisant les configurations de Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurer Kafka avec Helm

Pour les clusters Milvus sur K8s, vous pouvez configurer Kafka dans la même commande qui démarre Milvus. Vous pouvez également configurer Kafka à l’aide du fichier ` values.yml ` situé dans le chemin `/charts/milvus` du dépôt milvus-helm avant de démarrer Milvus.

Pour plus de détails sur la configuration de Milvus à l’aide de Helm, consultez la section Configurer Milvus avec les charts Helm. Pour plus de détails sur les éléments de configuration liés à Pulsar, consultez la section Configurations liées à Pulsar.

Utilisation du fichier YAML

  1. Configurez la section ` externalConfigFiles ` du fichier ` values.yaml ` si vous souhaitez utiliser Kafka comme système de stockage de messages.
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. Après avoir configuré les sections précédentes et enregistré le fichier ` values.yaml `, exécutez la commande suivante pour installer Milvus en utilisant les configurations Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurer RocksMQ avec Helm

RocksMQ était le système de stockage de messages par défaut dans Milvus en mode autonome jusqu'à la version 2.5.x ; à partir de la version 2.6.x, le système par défaut est Woodpecker. Pour connaître les étapes détaillées de configuration de Milvus avec Helm, reportez-vous à la section Configurer Milvus avec les charts Helm. Pour plus de détails sur les éléments de configuration liés à RocksMQ, consultez la section « Configurations liées à RocksMQ ».

  • Si vous démarrez Milvus avec RocksMQ et que vous souhaitez modifier ses paramètres, vous pouvez exécuter la commande ` helm upgrade -f ` en utilisant les paramètres modifiés dans le fichier YAML suivant.

  • Si vous avez installé Milvus en mode autonome à l’aide de Helm avec un magasin de messages autre que RocksMQ et que vous souhaitez revenir à RocksMQ, exécutez la commande « helm upgrade -f » avec le fichier YAML suivant après avoir vidé toutes les collections et arrêté Milvus.

extraConfigFiles:
  user.yaml: |+
    rocksmq:
      # The path where the message is stored in rocksmq
      # please adjust in embedded Milvus: /tmp/milvus/rdb_data
      path: /var/lib/milvus/rdb_data
      lrucacheratio: 0.06 # rocksdb cache memory ratio
      rocksmqPageSize: 67108864 # 64 MB, 64 * 1024 * 1024 bytes, The size of each page of messages in rocksmq
      retentionTimeInMinutes: 4320 # 3 days, 3 * 24 * 60 minutes, The retention time of the message in rocksmq.
      retentionSizeInMB: 8192 # 8 GB, 8 * 1024 MB, The retention size of the message in rocksmq.
      compactionInterval: 86400 # 1 day, trigger rocksdb compaction every day to remove deleted data
      # compaction compression type, only support use 0,7.
      # 0 means not compress, 7 will use zstd
      # len of types means num of rocksdb level.
      compressionTypes: [0, 0, 7, 7, 7]    

Il n’est pas recommandé de changer de magasin de messages. Si vous souhaitez tout de même procéder ainsi, arrêtez toutes les opérations DDL, puis appelez l’API FlushAll pour vider toutes les collections, et enfin arrêtez Milvus avant de modifier effectivement le magasin de messages.

Et ensuite ?

Découvrez comment configurer les autres dépendances de Milvus avec Docker Compose ou Helm :