Переключение типа MQ для автономного Milvus
В этой теме описывается, как переключить тип очереди сообщений (MQ) для существующего автономного развертывания Milvus. Milvus поддерживает переключение MQ в режиме онлайн без простоев.
Эта функция находится на стадии выпуска и может быть изменена. Обратитесь в службу поддержки Milvus, если хотите опробовать ее или у вас возникли вопросы.
Необходимые условия
- Работающий экземпляр Milvus Standalone, установленный с помощью Docker или Docker Compose.
- Экземпляр Milvus обновлен до последней версии, поддерживающей эту функцию Switch MQ.
Общий рабочий процесс
Общий процесс переключения типа MQ выглядит следующим образом:
- Убедитесь, что экземпляр Milvus работает правильно.
- Подтвердите исходный тип MQ и целевой тип MQ.
- Настройте параметры доступа целевого MQ в конфигурации Milvus, не изменяя значения
mqType. - Запустите переключение, вызвав API WAL alter.
- Проследите за журналами, чтобы убедиться в успешном завершении переключения.
Перед переключением убедитесь, что целевой 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.