milvus-logo
LFAI
Home
  • Guía de administración

Configurar el almacenamiento de mensajes con Docker Compose o Helm

Milvus utiliza Pulsar o Kafka para gestionar los registros de cambios recientes, generar registros de flujo y proporcionar suscripciones a registros. Pulsar es el sistema de almacenamiento de mensajes por defecto. Este tema presenta cómo configurar el almacenamiento de mensajes con Docker Compose o Helm.

Puede configurar Pulsar con Docker Compose o en K8s y configurar Kafka en K8s.

Configurar Pulsar con Docker Compose

1. Configurar Pulsar

Para configurar Pulsar con Docker Compose, proporcione sus valores para la sección pulsar en el archivo milvus.yaml en la ruta 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.

Consulte las configuraciones relacionadas con Pulsar para obtener más información.

2. Ejecute Milvus

Ejecute el siguiente comando para iniciar Milvus que utiliza las configuraciones de Pulsar.

docker compose up
Las configuraciones sólo tienen efecto una vez iniciado Milvus. Consulte Iniciar Milvus para obtener más información.

Configurar Pulsar con Helm

Para clusters Milvus en K8s, puede configurar Pulsar en el mismo comando que inicia Milvus. Alternativamente, puede configurar Pulsar utilizando el archivo values.yml en la ruta /charts/milvus en el repositorio milvus-helm antes de iniciar Milvus.

Para más detalles sobre cómo configurar Milvus utilizando Helm, consulte Configurar Milvus con Helm Charts. Para más detalles sobre los elementos de configuración relacionados con Pulsar, consulte Configuraciones relacionadas con Pulsar. |

Usando el archivo YAML

  1. Configure la sección externalConfigFiles en el archivo 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. Después de configurar las secciones anteriores y guardar el archivo values.yaml, ejecute el siguiente comando para instalar Milvus que utiliza las configuraciones de Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurar Kafka con Helm

Para clusters Milvus en K8s, puede configurar Kafka en el mismo comando que inicia Milvus. Alternativamente, puede configurar Kafka utilizando el archivo values.yml en la ruta /charts/milvus en el repositorio milvus-helm antes de iniciar Milvus.

Para más detalles sobre cómo configurar Milvus utilizando Helm, consulte Configurar Milvus con Helm Charts. Para más detalles sobre los elementos de configuración relacionados con Pulsar, consulte Configuraciones relacionadas con Pulsar.

Uso del archivo YAML

  1. Configure la sección externalConfigFiles en el archivo values.yaml si desea utilizar Kafka como sistema de almacenamiento de mensajes.
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. Después de configurar las secciones anteriores y guardar el archivo values.yaml, ejecute el siguiente comando para instalar Milvus que utiliza las configuraciones de Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml

Configurar RocksMQ con Helm

Milvus standalone utiliza RocksMQ como almacenamiento de mensajes por defecto. Para pasos detallados sobre cómo configurar Milvus con Helm, consulte Configurar Milvus con Helm Charts. Para detalles sobre elementos de configuración relacionados con RocksMQ, refiérase a Configuraciones relacionadas con RocksMQ.

  • Si inicia Milvus con RocksMQ y desea cambiar su configuración, puede ejecutar helm upgrade -f con la configuración cambiada en el siguiente archivo YAML.

  • Si ha instalado Milvus standalone usando Helm con un almacén de mensajes distinto a RocksMQ y quiere cambiarlo de nuevo a RocksMQ, ejecute helm upgrade -f con el siguiente archivo YAML después de haber vaciado todas las colecciones y parado 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]    

No se recomienda cambiar el almacén de mensajes. Si quiere hacerlo, detenga todas las operaciones DDL, luego llame a la API FlushAll para vaciar todas las colecciones, y finalmente detenga Milvus antes de cambiar el almacén de mensajes.

Configurar NATS con Helm

NATS es un almacén de mensajes experimental alternativo a RocksMQ. Para pasos detallados sobre cómo configurar Milvus con Helm, consulte Configurar Milvus con Helm Charts. Para más detalles sobre los elementos de configuración relacionados con RocksMQ, consulte Configuraciones relacionadas con NATS.

  • Si inicia Milvus con NATS y desea cambiar su configuración, puede ejecutar helm upgrade -f con la configuración modificada en el siguiente archivo YAML.

  • Si ha instalado Milvus standalone con un almacén de mensajes distinto de NATS y desea cambiarlo a NATS, ejecute helm upgrade -f con el siguiente archivo YAML después de haber vaciado todas las colecciones y detenido 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: 

¿Elegir entre RocksMQ y NATS?

RockMQ utiliza CGO para interactuar con RocksDB y gestiona la memoria por sí mismo, mientras que el NATS puro de Go incrustado en la instalación de Milvus delega su gestión de memoria al recolector de basura (GC) de Go.

En el escenario en el que el paquete de datos es inferior a 64 kb, RocksDB supera en términos de uso de memoria, uso de CPU y tiempo de respuesta. Por otro lado, si el paquete de datos es mayor de 64 kb, NATS sobresale en términos de tiempo de respuesta con suficiente memoria y una programación ideal del GC.

Actualmente, se aconseja utilizar NATS sólo para experimentos.

Próximos pasos

Aprenda a configurar otras dependencias de Milvus con Docker Compose o Helm:

Traducido porDeepL

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?