milvus-logo
LFAI
Home
  • Guide d'administration
    • Gérer les dépendances

Configurer le stockage des messages avec Docker Compose ou Helm

Milvus utilise Pulsar ou Kafka pour gérer les journaux des modifications récentes, produire des journaux de flux et fournir des abonnements aux journaux. Pulsar est le système de stockage de messages par défaut. Cette rubrique explique comment configurer le stockage des messages avec Docker Compose ou Helm.

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

Configurer Pulsar avec Docker Compose

1. Configurer Pulsar

Pour configurer Pulsar avec Docker Compose, fournissez vos valeurs pour la section pulsar dans le fichier milvus.yaml sur le chemin 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.

Voir les configurations liées à Pulsar pour plus d'informations.

2. Exécuter Milvus

Exécuter la commande suivante pour démarrer Milvus qui utilise les configurations Pulsar.

docker compose up
Les configurations ne prennent effet qu'après le démarrage de Milvus. Voir 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 que celle qui démarre Milvus. Vous pouvez également configurer Pulsar à l'aide du fichier values.yml sur le chemin /charts/milvus dans le référentiel milvus-helm avant de démarrer Milvus.

Pour plus de détails sur la configuration de Milvus à l'aide de Helm, voir Configurer Milvus avec les cartes Helm. Pour plus de détails sur les éléments de configuration liés à Pulsar, voir Configurations liées à Pulsar.

Utilisation du fichier YAML

  1. Configurer 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 qui utilise les configurations Pulsar.
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 que celle qui démarre Milvus. Vous pouvez également configurer Kafka à l'aide du fichier values.yml sur le chemin /charts/milvus dans le 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 cartes Helm. Pour plus de détails sur les éléments de configuration liés à Pulsar, voir Configurations liées à Pulsar.

Utilisation du fichier YAML

  1. Configurez la section externalConfigFiles dans le fichier values.yaml si vous souhaitez utiliser Kafka comme système de stockage des 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 qui utilise les configurations Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurer RocksMQ avec Helm

Milvus standalone utilise RocksMQ comme système de stockage de messages par défaut. Pour des étapes détaillées sur la configuration de Milvus avec Helm, reportez-vous à la section Configurer Milvus avec les diagrammes Helm. Pour plus de détails sur les éléments de configuration liés à RocksMQ, voir Configurations liées à RocksMQ.

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

  • Si vous avez installé Milvus de manière autonome à l'aide de Helm avec un magasin de messages autre que RocksMQ et que vous souhaitez revenir à RocksMQ, exécutez helm upgrade -f avec le fichier YAML suivant après avoir nettoyé 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 le faire, arrêtez toutes les opérations DDL, puis appelez l'API FlushAll pour vider toutes les collections, et enfin arrêtez Milvus à la fin avant de modifier le magasin de messages.

Configurer NATS avec Helm

NATS est un magasin de messages expérimental qui remplace RocksMQ. Pour des étapes détaillées sur la configuration de Milvus avec Helm, voir Configurer Milvus avec Helm Charts. Pour plus de détails sur les éléments de configuration liés à RocksMQ, reportez-vous aux configurations liées à NATS.

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

  • Si vous avez installé Milvus standalone avec un magasin de messages autre que NATS et que vous souhaitez le remplacer par NATS, exécutez helm upgrade -f avec le fichier YAML suivant après avoir nettoyé toutes les collections et arrêté Milvus.

extraConfigFiles:
  user.yaml: |+
    mq:
      type: natsmq
    natsmq:
      # server side configuration for natsmq.
      server: 
        # 4222 by default, Port for nats server listening.
        port: 4222 
        # /var/lib/milvus/nats by default, directory to use for JetStream storage of nats.
        storeDir: /var/lib/milvus/nats 
        # (B) 16GB by default, Maximum size of the 'file' storage.
        maxFileStore: 17179869184 
        # (B) 8MB by default, Maximum number of bytes in a message payload.
        maxPayload: 8388608 
        # (B) 64MB by default, Maximum number of bytes buffered for a connection applies to client connections.
        maxPending: 67108864 
        # (√ms) 4s by default, waiting for initialization of natsmq finished.
        initializeTimeout: 4000 
        monitor:
          # false by default, If true enable debug log messages.
          debug: false 
          # true by default, If set to false, log without timestamps.
          logTime: true 
          # no log file by default, Log file path relative to.. .
          logFile: 
          # (B) 0, unlimited by default, Size in bytes after the log file rolls over to a new one.
          logSizeLimit: 0 
        retention:
          # (min) 3 days by default, Maximum age of any message in the P-channel.
          maxAge: 4320 
          # (B) None by default, How many bytes the single P-channel may contain. Removing oldest messages if the P-channel exceeds this size.
          maxBytes:
          # None by default, How many message the single P-channel may contain. Removing oldest messages if the P-channel exceeds this limit.    
          maxMsgs: 

Choisir entre RocksMQ et NATS ?

RockMQ utilise CGO pour interagir avec RocksDB et gère lui-même la mémoire, tandis que le NATS purement Go intégré dans l'installation de Milvus délègue la gestion de la mémoire au garbage collector (GC) de Go.

Dans le scénario où le paquet de données est inférieur à 64 kb, RocksDB est plus performant en termes d'utilisation de la mémoire, d'utilisation de l'unité centrale et de temps de réponse. En revanche, si le paquet de données est supérieur à 64 kb, NATS excelle en termes de temps de réponse avec une mémoire suffisante et une planification idéale du GC.

Pour l'instant, il est conseillé de n'utiliser les NATS qu'à des fins expérimentales.

Prochaines étapes

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

Traduit parDeepL

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Cette page a-t - elle été utile ?