Настройка хранилища сообщений с помощью Docker Compose или Helm
Milvus использует Pulsar или Kafka для управления журналами последних изменений, вывода потоковых журналов и обеспечения подписки на журналы. Pulsar является системой хранения сообщений по умолчанию. В этой теме рассказывается о настройке хранилища сообщений с помощью Docker Compose или Helm.
Вы можете настроить Pulsar с помощью Docker Compose или на K8s и настроить Kafka на K8s.
Ограничения очереди сообщений: При обновлении до Milvus v2.6.16 вы должны сохранить текущий выбор очереди сообщений. Переключение между различными системами очередей сообщений во время обновления не поддерживается. Поддержка смены систем очередей сообщений будет доступна в будущих версиях.
Настройка 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
Настройка Pulsar с помощью Helm
Для кластеров Milvus на K8s можно настроить Pulsar в той же команде, которая запускает Milvus. В качестве альтернативы можно настроить Pulsar с помощью файла values.yml по пути /charts/milvus в репозитории milvus-helm перед запуском Milvus.
Подробнее о том, как настроить Milvus с помощью Helm, см. в разделе Настройка Milvus с помощью Helm Charts. Подробные сведения об элементах конфигурации, связанных с Pulsar, см. в разделе Конфигурации, связанные с Pulsar.|
Использование файла YAML
- Настройте секцию
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
- После настройки предыдущих разделов и сохранения файла
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. Подробные сведения об элементах конфигурации, связанных с Woodpecker, см. в разделе Конфигурации, связанные с Woodpecker.|
Использование файла YAML
- Настройте секцию
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 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.
- После настройки предыдущих разделов и сохранения файла
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
- Настройте раздел
externalConfigFilesв файлеvalues.yaml, если вы хотите использовать Kafka в качестве системы хранения сообщений.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- После настройки предыдущих разделов и сохранения файла
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 standalone с помощью 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: