Utiliser Kafka comme file d'attente de messages Milvus
Apache Kafka est l'un des backends de file d'attente de messages (WAL) pris en charge par Milvus. Dans Milvus 3.x, Woodpecker est la file d’attente de messages par défaut ; Kafka reste toutefois entièrement pris en charge pour les utilisateurs qui le préfèrent. Kafka est principalement utilisé avec Milvus Distributed (cluster) ; les déploiements autonomes utilisent généralement Woodpecker intégré ou RocksMQ.
Compatibilité des versions
- Milvus prend en charge uniquement les versions 2.x et 3.x de Kafka.
- Kafka est configuré pour Milvus Distributed (cluster) via Helm ou Milvus Operator.
Déployer un cluster Milvus avec Kafka à l’aide de Helm
Installation et configuration
Pour utiliser un service Kafka externe, désactivez Pulsar intégré et activez externalKafka dans une redéfinition de ` values.yaml `, puis installez Milvus avec ce service :
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
Pour plus d’informations sur l’authentification SASL/SSL, consultez la section « Se connecter à Kafka avec SASL/SSL ».
Désinstallation
helm uninstall my-release
Déployer un cluster Milvus avec Kafka à l’aide de Milvus Operator
Avec Milvus Operator, définissez spec.dependencies.msgStreamType: "kafka" et configurez Kafka sous spec.dependencies.kafka (cluster uniquement). kafka prend en charge external et inCluster.
Kafka externe
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"
Les configurations SASL sont prises en charge dans Milvus Operator v0.8.5 ou version ultérieure.
Kafka interne (au sein du cluster)
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: {}
Appliquez la configuration (en supposant que le fichier s'appelle milvuscluster.yaml) :
kubectl apply -f milvuscluster.yaml
Désinstallation
kubectl delete milvus my-release
Remarques
- Mise à niveau de la version 2.5.x vers la version 2.6.x : limitations relatives à la file d’attente de messages: lors de la mise à niveau vers Milvus v3.0.0, vous devez conserver votre choix actuel de file d’attente de messages. Le passage d’un système de file d’attente de messages à un autre pendant la mise à niveau n’est pas pris en charge. La prise en charge du changement de système de file d’attente de messages sera disponible dans les versions futures. Si vous utilisez Kafka et souhaitez le conserver, ne modifiez pas la file d'attente de messages pendant la mise à niveau.
- Seules les versions 2.x et 3.x de Kafka sont prises en charge.
- Pour la connectivité SASL/SSL, consultez la section « Se connecter à Kafka avec SASL/SSL ».