• О компании Milvus
  • Начать работу
  • Понятия
  • Руководство пользователя
  • Импорт данных
  • Инструменты искусственного интеллекта
  • Руководство по администрированию
  • Инструменты
  • Интеграции
  • Учебные материалы
  • Часто задаваемые вопросы
  • API Reference

Настройка хранилища сообщений с помощью Docker Compose или Helm

Milvus использует очередь сообщений для управления журналами последних изменений, вывода потоковых журналов и предоставления подписок на журналы. Начиная с версии Milvus 3.0.x, Woodpecker является рекомендуемой по умолчанию очередью сообщений; в этой статье рассказывается, как настроить Pulsar или Kafka с помощью Docker Compose или Helm.

Вы можете настроить Pulsar с помощью Docker Compose или в K8s, а Kafka — в K8s.

Ограничения, связанные сочередью сообщений: при обновлении до Milvus v3.0.3 необходимо сохранить текущий выбор системы очереди сообщений. Переключение между различными системами очередей сообщений во время обновления не поддерживается. Поддержка смены систем очередей сообщений будет доступна в будущих версиях.

Настройка Pulsar с помощью Docker Compose

1. Настройка Pulsar

Чтобы настроить Pulsar с помощью Docker Compose, укажите свои значения в разделе « pulsar » в файле ` milvus.yaml `, расположенном в каталоге `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.

Дополнительную информацию см. в разделе «Настройки, связанные с Pulsar ».

2. Запуск Milvus

Выполните следующую команду, чтобы запустить Milvus с использованием настроек Pulsar.

docker compose up
Настройки вступают в силу только после запуска Milvus. Дополнительную информацию см. в разделе «Запуск Milvus ».

Настройка Pulsar с помощью Helm

Для кластеров Milvus на K8s вы можете настроить Pulsar в той же команде, которая запускает Milvus. В качестве альтернативы вы можете настроить Pulsar с помощью файла « values.yml », расположенного по пути /charts/milvus в репозитории milvus-helm, перед запуском Milvus.

Подробнее о том, как настроить Milvus с помощью Helm, см. в разделе «Настройка Milvus с помощью диаграмм Helm». Подробнее о параметрах конфигурации, связанных с Pulsar, см. в разделе «Настройки, связанные с Pulsar». |

Использование файла YAML

  1. Настройте раздел ` externalConfigFiles ` в файле ` 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. После настройки вышеуказанных разделов и сохранения файла ` values.yaml ` выполните следующую команду для установки Milvus с использованием конфигураций Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml

Настройка Woodpecker с помощью Helm

Для кластеров Milvus на K8s вы можете настроить Woodpecker в той же команде, которая запускает Milvus. В качестве альтернативы вы можете настроить Woodpecker с помощью файла values.yml, расположенного по пути /charts/milvus в репозитории milvus-helm, перед запуском Milvus.

Подробнее о том, как настроить Milvus с помощью Helm, см. в разделе «Настройка Milvus с помощью Helm Charts». Подробнее о параметрах конфигурации, связанных с Woodpecker, см. в разделе «Настройки, связанные с Woodpecker». |

Использование файла YAML

  1. Настройте раздел ` externalConfigFiles ` в файле ` 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. После настройки вышеуказанных разделов и сохранения файла ` values.yaml ` выполните следующую команду для установки Milvus с использованием конфигураций Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml

Настройка Kafka с помощью Helm

Для кластеров Milvus на K8s вы можете настроить Kafka в той же команде, которая запускает Milvus. В качестве альтернативы вы можете настроить Kafka с помощью файла ` values.yml `, расположенного по пути `/charts/milvus` в репозитории `milvus-helm `, перед запуском Milvus.

Подробнее о том, как настроить Milvus с помощью Helm, см. в разделе «Настройка Milvus с помощью диаграмм Helm». Подробнее о параметрах конфигурации, связанных с Pulsar, см. в разделе «Настройки, связанные с Pulsar».

Использование файла YAML

  1. Настройте раздел ` externalConfigFiles ` в файле ` values.yaml `, если хотите использовать Kafka в качестве системы хранения сообщений.
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. После настройки предыдущих разделов и сохранения файла ` values.yaml ` выполните следующую команду, чтобы установить Milvus с использованием настроек Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml

Настройка RocksMQ с помощью Helm

До версии 2.5.x RocksMQ был хранилищем сообщений по умолчанию в автономной версии Milvus; начиная с версии 2.6.x по умолчанию используется Woodpecker. Подробные инструкции по настройке Milvus с помощью Helm см. в разделе «Настройка Milvus с помощью диаграмм Helm». Подробную информацию о параметрах конфигурации, связанных с RocksMQ, см. в разделе «Настройки, связанные с RocksMQ».

  • Если вы запустили Milvus с RocksMQ и хотите изменить его настройки, вы можете выполнить команду ` helm upgrade -f ` с измененными настройками в следующем файле YAML.

  • Если вы установили автономную версию Milvus с помощью Helm с хранилищем сообщений, отличным от RocksMQ, и хотите вернуть RocksMQ, запустите команду ` helm upgrade -f ` с использованием следующего файла YAML после того, как очистите все коллекции и остановите 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]    

Изменение хранилища сообщений не рекомендуется. Если вы всё же хотите это сделать, остановите все операции DDL, затем вызовите API-метод FlushAll для очистки всех коллекций и, наконец, остановите Milvus перед тем, как фактически изменить хранилище сообщений.

Что дальше

Узнайте, как настроить другие зависимости Milvus с помощью Docker Compose или Helm: