Configurar el almacenamiento de mensajes con Docker Compose o Helm
Milvus utiliza una cola de mensajes para gestionar los registros de los cambios recientes, generar registros de flujo y ofrecer suscripciones a registros. A partir de la versión 3.0.x de Milvus, Woodpecker es la cola de mensajes recomendada por defecto; en este tema se explica cómo configurar Pulsar o Kafka con Docker Compose o Helm.
Puedes configurar Pulsar con Docker Compose o en K8s, y configurar Kafka en K8s.
Limitaciones de la cola de mensajes: al actualizar a Milvus v3.0.0, debes mantener tu elección actual de cola de mensajes. No se admite el cambio entre diferentes sistemas de colas de mensajes durante la actualización. La compatibilidad con 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, introduzca sus valores en la sección « pulsar » del archivo « milvus.yaml », ubicado 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. Ejecutar Milvus
Ejecuta el siguiente comando para iniciar Milvus utilizando las configuraciones de Pulsar.
docker compose up
Configurar Pulsar con Helm
Para los clústeres de Milvus en K8s, puede configurar Pulsar en el mismo comando con el que se inicia Milvus. Como alternativa, puede configurar Pulsar utilizando el archivo « values.yml », ubicado en la ruta «/charts/milvus» del repositorio «milvus-helm», antes de iniciar Milvus.
Para obtener más información sobre cómo configurar Milvus con Helm, consulta «Configurar Milvus con Helm Charts». Para obtener más información sobre los elementos de configuración relacionados con Pulsar, consulta «Configuraciones relacionadas con Pulsar». |
Uso del archivo YAML
- Configure la sección «
externalConfigFiles» en el archivo «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
- Tras configurar las secciones anteriores y guardar el archivo `
values.yaml`, ejecute el siguiente comando para instalar Milvus utilizando las configuraciones de Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
Configuración de Woodpecker con Helm
Para los clústeres de Milvus en K8s, puede configurar Woodpecker en el mismo comando que inicia Milvus. Como alternativa, puede configurar Woodpecker utilizando el archivo values.yml, ubicado en la ruta /charts/milvus del repositorio milvus-helm, antes de iniciar Milvus.
Para obtener más información sobre cómo configurar Milvus con Helm, consulta «Configurar Milvus con Helm Charts». Para obtener más información sobre los elementos de configuración relacionados con Woodpecker, consulta «Configuraciones relacionadas con Woodpecker». |
Uso del archivo YAML
- Configure la sección «
externalConfigFiles» en el archivo «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 number of flush retries.
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.
- Tras configurar las secciones anteriores y guardar el archivo «
values.yaml», ejecute el siguiente comando para instalar Milvus utilizando las configuraciones de Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
Configurar Kafka con Helm
Para los clústeres de Milvus en K8s, puede configurar Kafka en el mismo comando que inicia Milvus. Como alternativa, puede configurar Kafka utilizando el archivo values.yml, ubicado en la ruta /charts/milvus del repositorio milvus-helm, antes de iniciar Milvus.
Para obtener más información sobre cómo configurar Milvus con Helm, consulta «Configurar Milvus con Helm Charts». Para obtener más información sobre los elementos de configuración relacionados con Pulsar, consulta «Configuraciones relacionadas con Pulsar».
Uso del archivo YAML
- Configure la sección «
externalConfigFiles» del archivo «values.yaml» si 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
- Tras configurar las secciones anteriores y guardar el archivo `
values.yaml`, ejecute el siguiente comando para instalar Milvus con las configuraciones de Kafka.
helm install <your_release_name> milvus/milvus -f values.yaml
Configuración de RocksMQ con Helm
RocksMQ era el almacenamiento de mensajes predeterminado en Milvus independiente hasta la versión 2.5.x; a partir de la versión 2.6.x, el valor predeterminado es Woodpecker. Para conocer los pasos detallados sobre cómo configurar Milvus con Helm, consulta «Configurar Milvus con Helm Charts». Para obtener más información sobre los elementos de configuración relacionados con RocksMQ, consulta «Configuraciones relacionadas con RocksMQ».
Si ha iniciado Milvus con RocksMQ y desea modificar su configuración, puede ejecutar «
helm upgrade -f» con los ajustes modificados en el siguiente archivo YAML.Si ha instalado Milvus de forma independiente mediante Helm con un almacén de mensajes distinto de RocksMQ y desea volver a RocksMQ, ejecute «
helm upgrade -f» con el siguiente archivo YAML después de haber vaciado todas las colecciones y detenido 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, a pesar de todo, desea hacerlo, detenga todas las operaciones DDL, a continuación llame a la API FlushAll para vaciar todas las colecciones y, por último, detenga Milvus antes de cambiar realmente el almacén de mensajes.
Próximos pasos
Descubre cómo configurar otras dependencias de Milvus con Docker Compose o Helm: