Configurer le stockage des messages avec Docker Compose ou Helm
Milvus utilise Pulsar ou Kafka pour gérer les journaux des modifications récentes, produire des journaux de flux et fournir des abonnements aux journaux. Pulsar est le système de stockage de messages par défaut. Cette rubrique explique comment configurer le stockage des messages avec Docker Compose ou Helm.
Vous pouvez configurer Pulsar avec Docker Compose ou sur K8s et configurer Kafka sur K8s.
Limitations de la file d'attente des messages: Lors de la mise à niveau vers Milvus v2.6.16, vous devez conserver votre choix actuel de file d'attente de messages. Le passage d'un système de file d'attente de messages à un autre pendant la mise à niveau n'est pas pris en charge. La prise en charge du changement de système de file d'attente de messages sera disponible dans les prochaines versions.
Configurer Pulsar avec Docker Compose
1. Configurer Pulsar
Pour configurer Pulsar avec Docker Compose, fournissez vos valeurs pour la section pulsar dans le fichier milvus.yaml sur le chemin 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.
Voir les configurations liées à Pulsar pour plus d'informations.
2. Exécuter Milvus
Exécuter la commande suivante pour démarrer Milvus qui utilise les configurations Pulsar.
docker compose up
Configurer Pulsar avec Helm
Pour les clusters Milvus sur K8s, vous pouvez configurer Pulsar dans la même commande que celle qui démarre Milvus. Vous pouvez également configurer Pulsar à l'aide du fichier values.yml sur le chemin /charts/milvus dans le référentiel milvus-helm avant de démarrer Milvus.
Pour plus de détails sur la configuration de Milvus à l'aide de Helm, voir Configurer Milvus avec les cartes Helm. Pour plus de détails sur les éléments de configuration liés à Pulsar, voir Configurations liées à Pulsar.
Utilisation du fichier YAML
- Configurer la section
externalConfigFilesdans le fichiervalues.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
- Après avoir configuré les sections précédentes et enregistré le fichier
values.yaml, exécutez la commande suivante pour installer Milvus qui utilise les configurations Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurer Woodpecker avec Helm
Pour les clusters Milvus sur K8s, vous pouvez configurer Woodpecker dans la même commande que celle qui lance Milvus. Vous pouvez également configurer Woodpecker à l'aide du fichier values.yml sur le chemin /charts/milvus dans le référentiel milvus-helm avant de démarrer Milvus.
Pour plus de détails sur la configuration de Milvus à l'aide de Helm, reportez-vous à la section Configurer Milvus avec les cartes Helm. Pour plus de détails sur les éléments de configuration liés à Woodpecker, voir Configurations liées à Woodpecker.
Utilisation du fichier YAML
- Configurez la section
externalConfigFilesdans le fichiervalues.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.
- Après avoir configuré les sections précédentes et enregistré le fichier
values.yaml, exécutez la commande suivante pour installer Milvus qui utilise les configurations Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurer Kafka avec Helm
Pour les clusters Milvus sur K8s, vous pouvez configurer Kafka dans la même commande que celle qui démarre Milvus. Vous pouvez également configurer Kafka à l'aide du fichier values.yml sur le chemin /charts/milvus dans le référentiel milvus-helm avant de démarrer Milvus.
Pour plus de détails sur la configuration de Milvus à l'aide de Helm, reportez-vous à la section Configurer Milvus avec les cartes Helm. Pour plus de détails sur les éléments de configuration liés à Pulsar, voir Configurations liées à Pulsar.
Utilisation du fichier YAML
- Configurez la section
externalConfigFilesdans le fichiervalues.yamlsi vous souhaitez utiliser Kafka comme système de stockage des messages.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- Après avoir configuré les sections précédentes et enregistré le fichier
values.yaml, exécutez la commande suivante pour installer Milvus qui utilise les configurations Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurer RocksMQ avec Helm
Milvus standalone utilise RocksMQ comme système de stockage de messages par défaut. Pour des étapes détaillées sur la configuration de Milvus avec Helm, reportez-vous à la section Configurer Milvus avec les diagrammes Helm. Pour plus de détails sur les éléments de configuration liés à RocksMQ, voir Configurations liées à RocksMQ.
Si vous démarrez Milvus avec RocksMQ et que vous souhaitez modifier ses paramètres, vous pouvez exécuter
helm upgrade -favec les paramètres modifiés dans le fichier YAML suivant.Si vous avez installé Milvus de manière autonome à l'aide de Helm avec un magasin de messages autre que RocksMQ et que vous souhaitez revenir à RocksMQ, exécutez
helm upgrade -favec le fichier YAML suivant après avoir nettoyé toutes les collections et arrêté 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]
Il n'est pas recommandé de changer de magasin de messages. Si vous souhaitez le faire, arrêtez toutes les opérations DDL, puis appelez l'API FlushAll pour vider toutes les collections, et enfin arrêtez Milvus à la fin avant de modifier le magasin de messages.
Prochaines étapes
Découvrez comment configurer d'autres dépendances Milvus avec Docker Compose ou Helm :