Configurar el almacenamiento de mensajes con Docker Compose o Helm
Milvus utiliza Pulsar o Kafka para gestionar los registros de cambios recientes, generar registros de flujo y proporcionar suscripciones a registros. Pulsar es el sistema de almacenamiento de mensajes por defecto. Este tema presenta cómo configurar el almacenamiento de mensajes con Docker Compose o Helm.
Puede configurar Pulsar con Docker Compose o en K8s y configurar Kafka en K8s.
Limitaciones de la cola de mensajes: Al actualizar a Milvus v2.6.16, debe mantener su elección actual de cola de mensajes. No se admite el cambio entre diferentes sistemas de colas de mensajes durante la actualización. El soporte para el cambio de sistemas de colas de mensajes estará disponible en futuras versiones.
Configurar Pulsar con Docker Compose
1. Configurar Pulsar
Para configurar Pulsar con Docker Compose, proporcione sus valores para la sección pulsar en el archivo milvus.yaml en la ruta 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.
Consulte las configuraciones relacionadas con Pulsar para obtener más información.
2. Ejecute Milvus
Ejecute el siguiente comando para iniciar Milvus que utiliza las configuraciones de Pulsar.
docker compose up
Configurar Pulsar con Helm
Para clusters Milvus en K8s, puede configurar Pulsar en el mismo comando que inicia Milvus. Alternativamente, puede configurar Pulsar utilizando el archivo values.yml en la ruta /charts/milvus en el repositorio milvus-helm antes de iniciar Milvus.
Para más detalles sobre cómo configurar Milvus utilizando Helm, consulte Configurar Milvus con Helm Charts. Para más detalles sobre los elementos de configuración relacionados con Pulsar, consulte Configuraciones relacionadas con Pulsar. |
Usando el archivo YAML
- Configure la sección
externalConfigFilesen el archivovalues.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
- Después de configurar las secciones anteriores y guardar el archivo
values.yaml, ejecute el siguiente comando para instalar Milvus que utiliza las configuraciones de Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar Woodpecker con Helm
Para clusters Milvus en K8s, puede configurar Woodpecker en el mismo comando que inicia Milvus. Alternativamente, puede configurar Woodpecker utilizando el archivo values.yml en la ruta /charts/milvus en el repositorio milvus-helm antes de iniciar Milvus.
Para más detalles sobre cómo configurar Milvus utilizando Helm, consulte Configurar Milvus con Helm Charts. Para más detalles sobre los elementos de configuración relacionados con Woodpecker, consulte configuraciones relacionadas con Woodpecker. |
Usando el archivo YAML
- Configure la sección
externalConfigFilesen el archivovalues.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.
- Después de configurar las secciones anteriores y guardar el archivo
values.yaml, ejecute el siguiente comando para instalar Milvus que utiliza las configuraciones de Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar Kafka con Helm
Para clusters Milvus en K8s, puede configurar Kafka en el mismo comando que inicia Milvus. Alternativamente, puede configurar Kafka utilizando el archivo values.yml en la ruta /charts/milvus en el repositorio milvus-helm antes de iniciar Milvus.
Para más detalles sobre cómo configurar Milvus utilizando Helm, consulte Configurar Milvus con Helm Charts. Para más detalles sobre los elementos de configuración relacionados con Pulsar, consulte Configuraciones relacionadas con Pulsar.
Uso del archivo YAML
- Configure la sección
externalConfigFilesen el archivovalues.yamlsi desea utilizar Kafka como sistema de almacenamiento de mensajes.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- Después de configurar las secciones anteriores y guardar el archivo
values.yaml, ejecute el siguiente comando para instalar Milvus que utiliza las configuraciones de Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar RocksMQ con Helm
Milvus standalone utiliza RocksMQ como almacenamiento de mensajes por defecto. Para obtener pasos detallados sobre cómo configurar Milvus con Helm, consulte Configurar Milvus con Helm Charts. Para detalles sobre elementos de configuración relacionados con RocksMQ, refiérase a Configuraciones relacionadas con RocksMQ.
Si inicia Milvus con RocksMQ y desea cambiar su configuración, puede ejecutar
helm upgrade -fcon la configuración cambiada en el siguiente archivo YAML.Si ha instalado Milvus standalone usando Helm con un almacén de mensajes distinto a RocksMQ y quiere cambiarlo de nuevo a RocksMQ, ejecute
helm upgrade -fcon el siguiente archivo YAML después de haber vaciado todas las colecciones y parado 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]
No se recomienda cambiar el almacén de mensajes. Si quiere hacerlo, detenga todas las operaciones DDL, luego llame a la API FlushAll para vaciar todas las colecciones, y finalmente detenga Milvus antes de cambiar el almacén de mensajes.
Lo que sigue
Aprenda a configurar otras dependencias de Milvus con Docker Compose o Helm: