Configurare l'archiviazione dei messaggi con Docker Compose o Helm
Milvus utilizza Pulsar o Kafka per la gestione dei log delle modifiche recenti, l'output dei log dei flussi e la fornitura di sottoscrizioni ai log. Pulsar è il sistema di archiviazione dei messaggi predefinito. Questo argomento illustra come configurare l'archiviazione dei messaggi con Docker Compose o Helm.
È possibile configurare Pulsar con Docker Compose o su K8s e configurare Kafka su K8s.
Limitazioni della coda di messaggi: Quando si effettua l'aggiornamento a Milvus v2.6.15, è necessario mantenere l'attuale scelta della coda di messaggi. Il passaggio da un sistema di code di messaggi all'altro durante l'aggiornamento non è supportato. Il supporto per il cambio di sistemi di code di messaggi sarà disponibile nelle versioni future.
Configurazione di Pulsar con Docker Compose
1. Configurare Pulsar
Per configurare Pulsar con Docker Compose, fornire i valori della sezione pulsar nel file milvus.yaml nel percorso 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.
Per ulteriori informazioni, vedere le configurazioni relative a Pulsar.
2. Eseguire Milvus
Eseguire il seguente comando per avviare Milvus che utilizza le configurazioni di Pulsar.
docker compose up
Configurare Pulsar con Helm
Per i cluster Milvus su K8, è possibile configurare Pulsar con lo stesso comando di avvio di Milvus. In alternativa, è possibile configurare Pulsar utilizzando il file values.yml nel percorso /charts/milvus nel repository milvus-helm prima di avviare Milvus.
Per i dettagli su come configurare Milvus usando Helm, fare riferimento a Configurare Milvus con i grafici Helm. Per i dettagli sulle voci di configurazione relative a Pulsar, consultare Configurazioni relative a Pulsar. |
Uso del file YAML
- Configurare la sezione
externalConfigFilesnel filevalues.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
- Dopo aver configurato le sezioni precedenti e salvato il file
values.yaml, eseguire il seguente comando per installare Milvus che utilizza le configurazioni di Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurare Woodpecker con Helm
Per i cluster Milvus su K8, è possibile configurare Woodpecker con lo stesso comando che avvia Milvus. In alternativa, è possibile configurare Woodpecker utilizzando il file values.yml nel percorso /charts/milvus nel repository milvus-helm prima di avviare Milvus.
Per i dettagli su come configurare Milvus usando Helm, consultare Configurazione di Milvus con i grafici Helm. Per i dettagli sulle voci di configurazione relative a Woodpecker, fare riferimento a Configurazioni relative a Woodpecker. |
Uso del file YAML
- Configurare la sezione
externalConfigFilesnel filevalues.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.
- Dopo aver configurato le sezioni precedenti e salvato il file
values.yaml, eseguire il seguente comando per installare Milvus che utilizza le configurazioni di Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurare Kafka con Helm
Per i cluster Milvus su K8s, è possibile configurare Kafka con lo stesso comando che avvia Milvus. In alternativa, è possibile configurare Kafka utilizzando il file values.yml nel percorso /charts/milvus nel repository milvus-helm prima di avviare Milvus.
Per i dettagli su come configurare Milvus usando Helm, fare riferimento a Configurare Milvus con i grafici Helm. Per i dettagli sulle voci di configurazione relative a Pulsar, fare riferimento a Configurazioni relative a Pulsar.
Uso del file YAML
- Configurare la sezione
externalConfigFilesnel filevalues.yamlse si desidera utilizzare Kafka come sistema di archiviazione dei messaggi.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- Dopo aver configurato le sezioni precedenti e salvato il file
values.yaml, eseguire il seguente comando per installare Milvus che utilizza le configurazioni di Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurare RocksMQ con Helm
Milvus standalone utilizza RocksMQ come archivio messaggi predefinito. Per i passi dettagliati su come configurare Milvus con Helm, fate riferimento a Configurare Milvus con i grafici di Helm. Per i dettagli sulle voci di configurazione relative a RocksMQ, fate riferimento a Configurazioni relative a RocksMQ.
Se si avvia Milvus con RocksMQ e si vogliono modificare le sue impostazioni, si può eseguire
helm upgrade -fcon le impostazioni modificate nel seguente file YAML.Se avete installato Milvus standalone usando Helm con un message store diverso da RocksMQ e volete tornare a RocksMQ, eseguite
helm upgrade -fcon il seguente file YAML dopo aver scaricato tutte le collezioni e fermato 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]
La modifica dell'archivio messaggi non è consigliata. Se si desidera farlo, interrompere tutte le operazioni DDL, quindi chiamare l'API FlushAll per eseguire il flush di tutte le collezioni e infine arrestare Milvus prima di cambiare effettivamente l'archivio dei messaggi.
Il prossimo passo
Scoprite come configurare altre dipendenze di Milvus con Docker Compose o Helm: