Переключение типа 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
- Для Helm инструкции по обновлению конфигурации см. в разделе Настройка Milvus с помощью Helm Charts.
- Для Milvus Operator инструкции по обновлению конфигурации см. в разделе Настройка Milvus с Milvus Operator.
Шаг 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.