Basculer entre RocksMQ et Woodpecker
Cette page décrit comment basculer la file d’attente de messages (MQ) d’un déploiement Milvus Standalone (Docker Compose) entre RocksMQ et Woodpecker (backend local ou MinIO), dans les deux sens. Pour connaître le déroulement général et les prérequis, consultez la section Basculer la file d’attente de messages.
- Prérequis : la fonctionnalité de basculement de la file d’attente de messages est disponible à partir de Milvus 3.0. Mettez à niveau votre instance Milvus vers la version 3.0 ou une version ultérieure avant de commencer — cette fonctionnalité n’est pas disponible sur les versions antérieures.
- Le changement de file d’attente de messages nécessite un déploiement Docker Compose (qui active une source de configuration etcd). Le déploiement Docker à conteneur unique ne prend pas en charge ce changement.
Passer de RocksMQ à Woodpecker
Étape 1 : Vérifiez que l’instance Milvus est en cours d’exécution
Vérifiez que votre instance Milvus Standalone Docker Compose fonctionne correctement — par exemple, en créant une collection de test, en y insérant des données et en exécutant une requête.
Étape 2 : Configurer le stockage Woodpecker
Ajoutez les paramètres Woodpecker à la configuration Milvus sans modifier la valeur « mqType ». Exécutez la commande « docker exec -it milvus-standalone bash » pour accéder au conteneur, puis modifiez le fichier « /milvus/configs/user.yaml » :
woodpecker:
storage:
type: minio # minio or local
Redémarrez l’instance Milvus pour appliquer la configuration :
docker compose restart
Étape 3 : Effectuer la bascule vers MQ
Si c’est la première fois que vous basculez vers Woodpecker, ignorez cette remarque. Sinon, nettoyez les métadonnées et données résiduelles de Woodpecker avant de basculer à nouveau — les données résiduelles peuvent entraîner un comportement inattendu.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "woodpecker"}'
Le port MixCoord est généralement 9091.
Étape 4 : Vérifiez que la bascule est terminée
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
Une migration réussie génère l'entrée suivante dans le journal : [mqTypeValue=woodpecker].
Étape 5 : (Facultatif) Nettoyage des données RocksMQ
Les données RocksMQ se trouvent dans les répertoires volumes/milvus/rdb_data et volumes/milvus/rdb_data_meta_kv définis dans docker-compose.yaml. Si vous prévoyez de revenir à RocksMQ ultérieurement, supprimez d’abord ces fichiers pour éviter tout conflit.
Passer de Woodpecker à RocksMQ
Étape 1 : Vérifiez que l’instance Milvus est en cours d’exécution
Assurez-vous que votre instance Milvus Standalone Docker Compose fonctionne correctement.
Étape 2 : Effectuez la transition vers MQ
Assurez-vous que l’instance ne contient aucune donnée RocksMQ résiduelle issue d’une exécution précédente. S’il s’agit de votre premier passage à RocksMQ, ignorez cette remarque ; sinon, nettoyez d’abord les métadonnées et les données RocksMQ associées.
curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
-H "Content-Type: application/json" \
-d '{"target_wal_name": "rocksmq"}'
Étape 3 : Vérifier que la migration est terminée
docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"
Une migration réussie génère l'entrée suivante dans le journal : [mqTypeValue=rocksmq].
Étape 4 : (Facultatif) Nettoyage des données Woodpecker
- Métadonnées (etcd) : le préfixe de la clé Woodpecker est généralement
woodpecker/.... Affichez-le à l’aide de la commandeetcdctl get woodpecker --prefix, puis supprimez-le. - Données de stockage : en mode MinIO, supprimez les données de journalisation situées sous
<rootPath>/wp/...(généralementfiles/wp/...) dans le bucket ; en mode local, les données se trouvent sur le disque local à l'emplacementvolumes/milvus/data/wp/....
Si vous prévoyez de revenir à Woodpecker ultérieurement, nettoyez d’abord ces fichiers pour éviter tout conflit.
Scénarios pris en charge
| MQ source | MQ cible | État | Remarques |
|---|---|---|---|
| RocksMQ | Woodpecker (MinIO/local) | Pris en charge | |
| Woodpecker (MinIO/local) | RocksMQ | Pris en charge | |
| Woodpecker MinIO | Woodpecker local | Non pris en charge | Le passage d'un mode de stockage Woodpecker à un autre nécessite un traitement supplémentaire des métadonnées, qui n'est pas encore pris en charge. |
| Woodpecker local | Woodpecker MinIO | Non pris en charge | Idem que ci-dessus. |
| RocksMQ / Woodpecker | Pulsar / Kafka externes | Pris en charge mais non recommandé | Veillez à ce que les instances autonomes restent aussi simples que possible. |