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.

Limitaciones de la cola de mensajes: Al actualizar a Milvus v2.6.16, debe mantener su elección actual de cola de mensajes. No se admite el cambio entre diferentes sistemas de colas de mensajes durante la actualización. El soporte para el cambio de sistemas de colas de mensajes estará disponible en futuras versiones.

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 Woodpecker con Helm

Para clusters Milvus en K8s, puede configurar Woodpecker en el mismo comando que inicia Milvus. Alternativamente, puede configurar Woodpecker 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 Woodpecker, consulte configuraciones relacionadas con Woodpecker. |

Usando el archivo YAML

  1. Configure la sección externalConfigFiles en el archivo 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 size of write buffer in bytes.
          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. 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 Woodpecker.
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 obtener 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.

Lo que sigue

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