Cambiar entre RocksMQ y Woodpecker
En esta página se describe cómo cambiar la cola de mensajes (MQ) de una implementación de Milvus Standalone (Docker Compose) entre RocksMQ y Woodpecker (backend local o MinIO), en ambas direcciones. Para conocer el flujo de trabajo general y los requisitos previos, consulta Cambiar la cola de mensajes.
- Requisito previo: la función «Cambiar MQ» está disponible en Milvus 3.0 y versiones posteriores. Actualiza tu instancia de Milvus a Milvus 3.0 o una versión posterior antes de comenzar; la función no está disponible en versiones anteriores.
- El cambio de cola de mensajes requiere una implementación de Docker Compose (que habilita una fuente de configuración etcd). La implementación de Docker de un solo contenedor no admite el cambio.
Cambiar de RocksMQ a Woodpecker
Paso 1: Comprueba que la instancia de Milvus se esté ejecutando
Comprueba que tu instancia de Milvus Standalone con Docker Compose se está ejecutando correctamente; por ejemplo, creando una colección de prueba, insertando datos y ejecutando una consulta.
Paso 2: Configurar el almacenamiento de Woodpecker
Añade los ajustes de Woodpecker a la configuración de Milvus sin modificar el valor de « mqType ». Ejecuta « docker exec -it milvus-standalone bash » para acceder al contenedor y, a continuación, edita « /milvus/configs/user.yaml »:
woodpecker:
storage:
type: minio # minio or local
Reinicia la instancia de Milvus para aplicar la configuración:
docker compose restart
Paso 3: Ejecutar el cambio a MQ
Si es la primera vez que cambia a Woodpecker, omita esta nota. De lo contrario, elimine los metadatos y datos residuales de Woodpecker antes de volver a cambiar; los datos residuales pueden provocar un comportamiento inesperado.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
El puerto de MixCoord suele ser 9091.
Paso 4: Comprueba que el cambio se ha completado
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
Si el cambio se ha realizado correctamente, se registra en [mqTypeValue=woodpecker].
Paso 5: (Opcional) Limpia los datos de RocksMQ
Los datos de RocksMQ se encuentran en los directorios volumes/milvus/rdb_data y volumes/milvus/rdb_data_meta_kv, definidos en docker-compose.yaml. Si tiene previsto volver a RocksMQ más adelante, elimine primero estos archivos para evitar conflictos.
Cambiar de Woodpecker a RocksMQ
Paso 1: Comprueba que la instancia de Milvus esté en ejecución
Asegúrate de que tu instancia de Milvus Standalone Docker Compose se está ejecutando correctamente.
Paso 2: Ejecuta el cambio a MQ
Asegúrate de que la instancia no contenga datos residuales de RocksMQ de una ejecución anterior. Si es la primera vez que cambias a RocksMQ, omite esta nota; de lo contrario, elimina primero los metadatos y datos relacionados con RocksMQ.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "rocksmq"}'
Paso 3: Comprueba que el cambio se ha completado
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
Si la migración se ha realizado correctamente, se registrará en el archivo de registro « [mqTypeValue=rocksmq] ».
Paso 4: (Opcional) Limpia los datos de Woodpecker
- Metadatos (etcd): el prefijo de la clave de Woodpecker suele ser
woodpecker/.... Consúltalo conetcdctl get woodpecker --prefixy, a continuación, elimínalo. - Datos de almacenamiento: en modo MinIO, elimina los datos de registro que se encuentran en
<rootPath>/wp/...(normalmentefiles/wp/...) dentro del bucket; en modo local, los datos se encuentran en el disco local envolumes/milvus/data/wp/....
Si tiene previsto volver a Woodpecker más adelante, elimine primero estos archivos para evitar conflictos.
Escenarios compatibles
| MQ de origen | MQ de destino | Estado | Notas |
|---|---|---|---|
| RocksMQ | Woodpecker (MinIO/local) | Compatible | |
| Woodpecker (MinIO/local) | RocksMQ | Compatible | |
| Woodpecker MinIO | Woodpecker local | No compatible | El cambio entre los modos de almacenamiento de Woodpecker requiere una gestión adicional de metadatos, que aún no es compatible. |
| Woodpecker local | Woodpecker MinIO | No compatible | Lo mismo que arriba. |
| RocksMQ / Woodpecker | Pulsar externo / Kafka | Compatible, pero no recomendado | Mantén las instancias independientes lo más sencillas posible. |