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

Переключение типа MQ для кластера Milvus

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

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

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

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

Переключение с Pulsar/Kafka на Woodpecker (MinIO)

Выполните следующие шаги, чтобы переключить тип MQ с Pulsar или Kafka на Woodpecker с хранилищем MinIO.

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

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

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

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

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

woodpecker:
  storage:
    type: minio

Шаг 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.

Шаг 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 (например, pulsar или kafka), а <MQ2> - целевой тип MQ (woodpecker).

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

Переключение с Woodpecker (MinIO) на Pulsar или Kafka

Выполните следующие шаги, чтобы переключить тип MQ с Woodpecker обратно на Pulsar или Kafka.

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

Перед переключением убедитесь, что ваш экземпляр кластера Milvus работает нормально.

Шаг 2: Настройте целевой MQ

Перед началом переключения необходимо убедиться, что целевая служба MQ (Pulsar или Kafka) доступна и ее конфигурация доступа перенесена в конфигурацию Milvus.

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

Вариант A: Внутренний Pulsar/Kafka (поставляется вместе с Helm)

Если вы используете встроенный Pulsar или Kafka, развернутый Helm, обновите релиз Helm, чтобы включить целевую службу MQ и отключить Woodpecker. Флаг streaming.enabled=true необходим для включения потокового узла, который является необходимым условием для функции Switch MQ. Например, для переключения на Pulsar:

helm upgrade -i my-release milvus/milvus \
  --set pulsarv3.enabled=true \
  --set woodpecker.enabled=false \
  --set streaming.enabled=true \
  -f values.yaml

После обновления убедитесь, что целевая конфигурация доступа MQ была преобразована в конфигурацию Milvus. Например, для Pulsar:

pulsar:
  address: <pulsar-proxy-address>
  port: 6650

Вариант B: Внутренний Pulsar/Kafka (управляется Milvus Operator)

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

Вариант C: Внешний Pulsar/Kafka

Если вы используете внешнюю службу Pulsar или Kafka, вам не нужно изменять mqType. Просто добавьте конфигурацию внешнего доступа к MQ на свой values.yaml и перезапустите экземпляр Milvus для визуализации конфигурации.

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

Выполните следующую команду для запуска перехода на Pulsar (замените pulsar на kafka, если переходите на Kafka):

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

Замените <mixcoord_addr> на фактический адрес вашего сервиса MixCoord.

Шаг 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 (woodpecker), а <MQ2> - целевой тип MQ (например, pulsar или kafka).

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