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

Использование Pulsar в качестве бэкэнда очереди сообщений Milvus

Apache Pulsar — один из бэкэндов очереди сообщений (WAL), поддерживаемых Milvus. В Milvus 3.x по умолчанию используется Woodpecker в качестве очереди сообщений; Pulsar по-прежнему полностью поддерживается для пользователей, предпочитающих именно его. Pulsar в основном используется с Milvus Distributed (кластером); в автономных развертываниях обычно используется встроенный Woodpecker или RocksMQ.

Совместимость версий

Версия MilvusПоддерживаемая версия PulsarПо умолчанию
2.5.x и более поздниеPulsar v3 (рекомендуется) или Pulsar v2Pulsar v3 (через Helm / Milvus Operator)
2.4.x и более ранние версииPulsar v2Pulsar v2

Начиная с Milvus 2.5, диаграмма Helm для Milvus и Milvus Operator по умолчанию развертывают Pulsar v3; Pulsar v2 по-прежнему поддерживается. См. разделы «Обновление Pulsar с версии v2 до v3 » и «Продолжение использования Pulsar v2».

Развертывание кластера Milvus с Pulsar с помощью Helm

Установка

Чтобы развернуть кластер Milvus, использующий входящий в состав дистрибутива Pulsar (вместо Woodpecker), установите диаграмму Helm с включенным Streaming Node:

helm install my-release zilliztech/milvus \
  --set image.all.tag=v3.0.0 \
  --set pulsarv3.enabled=true \
  --set woodpecker.enabled=false \
  --set streaming.enabled=true \
  --set indexNode.enabled=false

В Kubernetes версии 1.25 и более поздних, если у вас возникнут проблемы с API PodDisruptionBudget из встроенного под-чарта Pulsar, отключите политики PDB Pulsar:

helm install my-release zilliztech/milvus \
  --set pulsar.bookkeeper.pdb.usePolicy=false \
  --set pulsar.broker.pdb.usePolicy=false \
  --set pulsar.proxy.pdb.usePolicy=false \
  --set pulsar.zookeeper.pdb.usePolicy=false

Настройка

Чтобы подключить Milvus к внешнему сервису Pulsar, отключите встроенный Pulsar и включите « externalPulsar » в переопределении « values.yaml »:

pulsarv3:
  enabled: false
externalPulsar:
  enabled: true
  host: <your_pulsar_host>
  port: 6650
  maxMessageSize: "5242880"  # 5 MB, maximum size of each message
  tenant: public
  namespace: default
helm install my-release zilliztech/milvus -f values.yaml

Удаление

helm uninstall my-release

Если вы использовали встроенный Pulsar и хотите удалить его сохраненные данные, удалите PVC Pulsar (с именем my-release-pulsarv3-*):

kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...

Разверните кластер Milvus с Pulsar с помощью Milvus Operator

С помощью Milvus Operator настройте Pulsar в разделе « spec.dependencies.pulsar » (поддерживается только для кластера Milvus). « pulsar » поддерживает « external » и « inCluster ».

Внешний Pulsar

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      external: true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}

Внутренний (внутрикластерный) Pulsar

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    pulsar:
      inCluster:
        values:
          components:
            autorecovery: false
          zookeeper:
            replicaCount: 1
          bookkeeper:
            replicaCount: 1
          broker:
            replicaCount: 1
            configData:
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}

Примените конфигурацию (предполагая, что файл называется milvuscluster.yaml):

kubectl apply -f milvuscluster.yaml

Удаление

kubectl delete milvus my-release

Примечания

  • Обновление с версии 2.5.x до 2.6.x: Ограничения, связанные с очередью сообщений: При обновлении до Milvus v3.0.0 необходимо сохранить текущий выбор системы очереди сообщений. Переключение между различными системами очередей сообщений во время обновления не поддерживается. Поддержка смены систем очередей сообщений будет доступна в будущих версиях. Если вы используете Pulsar и хотите продолжить его использование, не меняйте систему очередей сообщений во время обновления.
  • Pulsar v2 → v3: см. раздел «Обновление Pulsar с версии v2 до v3»; чтобы остаться на версии v2, см. раздел «Продолжение использования Pulsar v2».

Что дальше