• О компании Milvus
  • Начать работу
  • Понятия
  • Руководство пользователя
  • Импорт данных
  • Инструменты искусственного интеллекта
  • Руководство по администрированию
  • Инструменты
  • Интеграции
  • Учебные материалы
  • Часто задаваемые вопросы
  • API Reference

Переключение между RocksMQ и Woodpecker

На этой странице описано, как переключить очередь сообщений (MQ) автономного развертывания Milvus (Docker Compose) между RocksMQ и Woodpecker (локальный бэкэнд или бэкэнд MinIO) в обоих направлениях. Общий порядок действий и необходимые условия см. в разделе «Переключение очереди сообщений».

  • Необходимое условие: функция «Переключение MQ» доступна в Milvus 3.0 и более поздних версиях. Перед началом обновите свой экземпляр Milvus до версии 3.0 или более поздней — эта функция недоступна в более ранних версиях.
  • Для переключения MQ требуется развертывание с использованием Docker Compose (которое включает источник конфигурации etcd). Развертывание Docker с одним контейнером не поддерживает переключение.

Переключение с RocksMQ на Woodpecker

Шаг 1: Убедитесь, что экземпляр Milvus работает

Убедитесь, что ваш автономный экземпляр Milvus с Docker Compose работает корректно — например, создав тестовую коллекцию, вставив данные и выполнив запрос.

Шаг 2: Настройте хранилище Woodpecker

Добавьте настройки Woodpecker в конфигурацию Milvus, не изменяя значение параметра ` mqType `. Запустите команду ` docker exec -it milvus-standalone bash `, чтобы войти в контейнер, затем отредактируйте файл ` /milvus/configs/user.yaml`:

woodpecker:
  storage:
    type: minio   # minio or local

Перезапустите экземпляр Milvus, чтобы применить настройки:

docker compose restart

Шаг 3: Выполните переключение MQ

Если вы впервые переключаетесь на Woodpecker, пропустите это примечание. В противном случае перед повторным переключением удалите остаточные метаданные и данные Woodpecker — остаточные данные могут привести к непредвиденному поведению.

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "woodpecker"}'

Порт MixCoord обычно имеет значение 9091.

Шаг 4: Убедитесь, что переключение завершено

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

При успешном переключении в журнале регистрируется сообщение [mqTypeValue=woodpecker].

Шаг 5: (Необязательно) Очистка данных RocksMQ

Данные RocksMQ находятся в каталогах volumes/milvus/rdb_data и volumes/milvus/rdb_data_meta_kv, определённых в файле docker-compose.yaml. Если вы планируете позже вернуться к RocksMQ, сначала удалите эти файлы, чтобы избежать конфликтов.

Переход с Woodpecker на RocksMQ

Шаг 1: Убедитесь, что экземпляр Milvus запущен

Убедитесь, что ваш автономный экземпляр Milvus, развернутый с помощью Docker Compose, работает корректно.

Шаг 2: Выполните переключение MQ

Убедитесь, что в экземпляре нет остаточных данных RocksMQ от предыдущего запуска. Если вы переходите на RocksMQ впервые, пропустите это примечание; в противном случае сначала удалите соответствующие метаданные и данные RocksMQ.

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "rocksmq"}'

Шаг 3: Убедитесь, что переход завершён

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

При успешном переключении в журнале появляется запись « [mqTypeValue=rocksmq] ».

Шаг 4: (Необязательно) Очистка данных Woodpecker

  • Метаданные (etcd): префикс ключа Woodpecker обычно имеет вид woodpecker/.... Просмотрите его с помощью команды etcdctl get woodpecker --prefix, а затем удалите.
  • Данные хранилища: в режиме MinIO удалите данные журнала, расположенные в корзине по пути <rootPath>/wp/... (обычно files/wp/...); в локальном режиме данные находятся на локальном диске по пути volumes/milvus/data/wp/....

Если вы планируете позже вернуться к Woodpecker, сначала удалите эти файлы, чтобы избежать конфликтов.

Поддерживаемые сценарии

Источник MQЦелевой MQСостояниеПримечания
RocksMQWoodpecker (MinIO/локальный)Поддерживается
Woodpecker (MinIO/local)RocksMQПоддерживается
Woodpecker MinIOWoodpecker локальныйНе поддерживаетсяПереключение между режимами хранения Woodpecker требует дополнительной обработки метаданных, которая пока не поддерживается.
Локальный режим WoodpeckerWoodpecker MinIOНе поддерживаетсяТо же, что и выше.
RocksMQ / WoodpeckerВнешний Pulsar / KafkaПоддерживается, но не рекомендуетсяСделайте автономные экземпляры как можно более простыми.