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

Переключение типа MQ для автономного Milvus

В этой теме описывается, как переключить тип очереди сообщений (MQ) для существующего автономного развертывания Milvus. Milvus поддерживает переключение MQ в режиме онлайн без простоев.

Эта функция находится на стадии выпуска и может быть изменена. Обратитесь в службу поддержки Milvus, если хотите опробовать ее или у вас возникли вопросы.

Необходимые условия

  • Работающий экземпляр Milvus Standalone, установленный с помощью Docker или Docker Compose.
  • Экземпляр Milvus обновлен до последней версии, поддерживающей эту функцию Switch MQ.

Общий рабочий процесс

Общий процесс переключения типа MQ выглядит следующим образом:

  1. Убедитесь, что экземпляр Milvus работает правильно.
  2. Подтвердите исходный тип MQ и целевой тип MQ.
  3. Настройте параметры доступа целевого MQ в конфигурации Milvus, не изменяя значения mqType.
  4. Запустите переключение, вызвав API WAL alter.
  5. Проследите за журналами, чтобы убедиться в успешном завершении переключения.

Перед переключением убедитесь, что целевой MQ не содержит тем с теми же именами, что и темы, используемые текущим экземпляром Milvus. Это особенно важно, если целевая служба MQ ранее использовалась другим экземпляром Milvus, так как конфликтующие имена тем могут привести к неожиданному поведению.

Переход с RocksMQ на Woodpecker (локальное хранилище)

Эта процедура применима к развертываниям Milvus Standalone Docker, которые по умолчанию используют RocksMQ.

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

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

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

Обновите конфигурацию Milvus, чтобы добавить настройки Woodpecker без изменения значения mqType. Создайте или обновите файл user.yaml со следующим содержимым:

woodpecker:
  storage:
    type: local

Затем перезапустите экземпляр Milvus, чтобы применить конфигурацию:

bash standalone_embed.sh restart

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

Выполните следующую команду, чтобы запустить переход на Woodpecker:

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

Замените <mixcoord_addr> на фактический адрес вашей службы MixCoord (по умолчанию localhost для автономных развертываний).

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

Процесс переключения завершится автоматически. Чтобы убедиться в завершении процесса переключения, просмотрите журналы Milvus на предмет следующих ключевых сообщений:

WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd

В приведенных выше сообщениях журнала <MQ1> - это исходный тип MQ (rocksmq), а <MQ2> - целевой тип MQ (woodpecker).

  • Первое сообщение указывает на то, что переключение WAL с источника на цель завершено.
  • Второе сообщение указывает на то, что все физические каналы были переключены.
  • Третье сообщение указывает на то, что конфигурация mq.type была обновлена в etcd.

Переключение с RocksMQ на Woodpecker (MinIO Storage)

Эта процедура применима к развертываниям Milvus Standalone Docker Compose.

Начиная с Milvus v2.6, конфигурация по умолчанию docker-compose.yaml уже объявляет mqType как Woodpecker. Если вы не изменили конфигурацию по умолчанию или не обновились с версии 2.5, эта процедура может не понадобиться.

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

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

Шаг 2: (Необязательно) Проверка конфигурации Woodpecker

В конфигурации Milvus по умолчанию тип хранилища Woodpecker уже установлен на MinIO, поэтому в большинстве случаев дополнительная настройка не требуется.

Однако если вы ранее настраивали конфигурацию Woodpecker, необходимо убедиться, что для woodpecker.storage.type установлено значение minio. Создайте или обновите файл user.yaml со следующим содержимым:

woodpecker:
  storage:
    type: minio

Затем перезапустите экземпляр Milvus, чтобы применить конфигурацию:

docker compose down
docker compose up -d

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

Выполните следующую команду, чтобы запустить переключение на Woodpecker:

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

Замените <mixcoord_addr> на фактический адрес вашей службы MixCoord (по умолчанию localhost для автономных развертываний).

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

Процесс переключения завершится автоматически. Чтобы убедиться в завершении процесса переключения, просмотрите журналы Milvus на предмет следующих ключевых сообщений:

WAL switch success: <MQ1> switch to <MQ2> finish, re-opening required
AlterWAL broadcast message acknowledged by all vchannels
successfully updated mq.type configuration in etcd

В приведенных выше сообщениях журнала <MQ1> - это исходный тип MQ (rocksmq), а <MQ2> - целевой тип MQ (woodpecker).

  • Первое сообщение указывает на то, что переключение WAL с источника на цель завершено.
  • Второе сообщение указывает на то, что все физические каналы были переключены.
  • Третье сообщение указывает на то, что конфигурация mq.type была обновлена в etcd.