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».