• Acerca de Milvus
  • Empezar
  • Conceptos
  • Guía del usuario
  • Importación de datos
  • Herramientas de IA
  • Guía de administración
  • Herramientas
  • Integraciones
  • Tutoriales
  • Preguntas frecuentes
  • API Reference

Utilizar Kafka como cola de mensajes de Milvus

Apache Kafka es uno de los backends de cola de mensajes (WAL) compatibles con Milvus. En Milvus 3.x, Woodpecker es la cola de mensajes predeterminada; Kafka sigue siendo totalmente compatible para los usuarios que lo prefieran. Kafka se utiliza principalmente con Milvus Distributed (clúster); las implementaciones independientes suelen utilizar Woodpecker integrado o RocksMQ.

Compatibilidad de versiones

  • Milvus solo es compatible con Kafka 2.x y 3.x.
  • Kafka se configura para Milvus Distributed (clúster) mediante Helm o Milvus Operator.

Implementar un clúster de Milvus con Kafka mediante Helm

Instalación y configuración

Para utilizar un servicio externo de Kafka, desactiva el Pulsar integrado y habilita externalKafka en una configuración de « values.yaml », y a continuación instala Milvus con ello:

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

Para obtener más información sobre la autenticación SASL/SSL, consulta «Conectarse a Kafka con SASL/SSL».

Desinstalar

helm uninstall my-release

Implementar un clúster de Milvus con Kafka mediante Milvus Operator

Con Milvus Operator, establezca spec.dependencies.msgStreamType: "kafka" y configure Kafka en spec.dependencies.kafka (solo clúster). kafka admite external y inCluster.

Kafka externo

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"

Las configuraciones SASL son compatibles con Milvus Operator v0.8.5 o posterior.

Kafka interno (dentro del clúster)

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: {}

Aplica la configuración (suponiendo que el archivo es milvuscluster.yaml):

kubectl apply -f milvuscluster.yaml

Desinstalar

kubectl delete milvus my-release

Notas

  • Actualización de la versión 2.5.x a la 2.6.x: Limitaciones de la cola de mensajes: Al actualizar a Milvus v3.0.0, debes mantener tu elección actual de cola de mensajes. No se admite el cambio entre diferentes sistemas de colas de mensajes durante la actualización. La compatibilidad con el cambio de sistemas de colas de mensajes estará disponible en futuras versiones. Si utiliza Kafka y desea conservarlo, no cambie la cola de mensajes durante la actualización.
  • Solo se admiten las versiones 2.x y 3.x de Kafka.
  • Para la conectividad SASL/SSL, consulta «Conectarse a Kafka con SASL/SSL».

Próximos pasos