🚀 Попробуйте Zilliz Cloud, полностью управляемый Milvus, бесплатно — ощутите 10-кратное увеличение производительности! Попробовать сейчас>

milvus-logo
LFAI
Главная
  • Руководство по администрированию
    • Управление зависимостями
  • Home
  • Docs
  • Руководство по администрированию

  • Управление зависимостями

  • С помощью Docker или Helm

  • Хранение сообщений

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

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

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

Настройка 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 Charts. Подробные сведения об элементах конфигурации, связанных с 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

Настройка 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

Автономный Milvus использует RocksMQ в качестве хранилища сообщений по умолчанию. Подробные шаги по настройке 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 до того, как вы действительно измените хранилище сообщений.

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

NATS - это экспериментальное хранилище сообщений, альтернативное RocksMQ. Подробные шаги по настройке Milvus с помощью Helm см. в разделе Настройка Milvus с помощью диаграмм Helm. Подробные сведения о конфигурационных элементах, связанных с RocksMQ, см. в разделе Конфигурации, связанные с NATS.

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

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

Выбор между RocksMQ и NATS?

RockMQ использует CGO для взаимодействия с RocksDB и самостоятельно управляет памятью, в то время как NATS, встроенный в Milvus, делегирует управление памятью сборщику мусора (GC) Go.

В сценарии, когда пакет данных меньше 64 кб, RocksDB превосходит по использованию памяти, загрузке процессора и времени отклика. С другой стороны, если пакет данных больше 64 кб, NATS превосходит по времени отклика при достаточном объеме памяти и идеальном планировании GC.

В настоящее время рекомендуется использовать NATS только для экспериментов.

Что дальше

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

Попробуйте Managed Milvus бесплатно

Zilliz Cloud работает без проблем, поддерживается Milvus и в 10 раз быстрее.

Начать
Обратная связь

Была ли эта страница полезной?