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

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

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

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

  • Milvus поддерживает только Kafka версий 2.x и 3.x.
  • Настройка Kafka для Milvus Distributed (кластера) осуществляется с помощью Helm или Milvus Operator.

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

Установка и настройка

Чтобы использовать внешний сервис Kafka, отключите встроенный Pulsar и включите параметр « externalKafka » в файле переопределения « values.yaml », а затем установите Milvus с его использованием:

pulsarv3:
  enabled: false
externalKafka:
  enabled: true
  brokerList: <your_kafka_address>:<your_kafka_port>
  securityProtocol: SASL_SSL
  sasl:
    mechanisms: PLAIN
    username: ""
    password: ""
helm install my-release zilliztech/milvus -f values.yaml

Подробности об аутентификации SASL/SSL см. в разделе «Подключение к Kafka с помощью SASL/SSL».

Удаление

helm uninstall my-release

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

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

Внешний Kafka

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  config:
    kafka:
      # securityProtocol supports: PLAINTEXT, SSL, SASL_PLAINTEXT, SASL_SSL
      securityProtocol: PLAINTEXT
      # saslMechanisms supports: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512
      saslMechanisms: PLAIN
      saslUsername: ""
      saslPassword: ""
  dependencies:
    msgStreamType: "kafka"
    kafka:
      external: true
      brokerList:
        - "kafkaBrokerAddr1:9092"
        - "kafkaBrokerAddr2:9092"

Настройки SASL поддерживаются в Milvus Operator версии 0.8.5 или более поздней.

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

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies:
    msgStreamType: "kafka"
    kafka:
      inCluster:
        values: {}  # see https://artifacthub.io/packages/helm/bitnami/kafka
  components: {}
  config: {}

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

kubectl apply -f milvuscluster.yaml

Удаление

kubectl delete milvus my-release

Примечания

  • Обновление с версии 2.5.x до 2.6.x: Ограничения, связанные с очередью сообщений: при обновлении до Milvus v3.0.0 необходимо сохранить текущий выбор системы очереди сообщений. Переключение между различными системами очередей сообщений во время обновления не поддерживается. Поддержка смены систем очередей сообщений будет доступна в будущих версиях. Если вы используете Kafka и хотите сохранить её, не меняйте систему очередей сообщений во время обновления.
  • Поддерживаются только версии Kafka 2.x и 3.x.
  • Информацию о подключении по протоколу SASL/SSL см. в разделе «Подключение к Kafka с помощью SASL/SSL».

Что дальше