Utilizzare Kafka come coda di messaggi di Milvus
Apache Kafka è uno dei backend per le code di messaggi (WAL) supportati da Milvus. In Milvus 3.x, Woodpecker è la coda di messaggi predefinita; Kafka rimane pienamente supportato per gli utenti che lo preferiscono. Kafka viene utilizzato principalmente con Milvus Distributed (cluster); le distribuzioni standalone utilizzano in genere Woodpecker integrato o RocksMQ.
Compatibilità delle versioni
- Milvus supporta solo Kafka 2.x e 3.x.
- Kafka viene configurato per Milvus Distributed (cluster) tramite Helm o Milvus Operator.
Distribuzione di un cluster Milvus con Kafka utilizzando Helm
Installazione e configurazione
Per utilizzare un servizio Kafka esterno, disabilitare Pulsar integrato e abilitare externalKafka in un override dell'values.yaml, quindi installare Milvus con esso:
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
Per i dettagli sull’autenticazione SASL/SSL, consultare Connettersi a Kafka con SASL/SSL.
Disinstallazione
helm uninstall my-release
Distribuire un cluster Milvus con Kafka utilizzando Milvus Operator
Con Milvus Operator, impostare spec.dependencies.msgStreamType: "kafka" e configurare Kafka in spec.dependencies.kafka (solo cluster). kafka supporta external e inCluster.
Kafka esterno
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"
Le configurazioni SASL sono supportate in Milvus Operator v0.8.5 o versioni successive.
Kafka interno (all’interno del 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: {}
Applicare la configurazione (supponendo che il file sia milvuscluster.yaml):
kubectl apply -f milvuscluster.yaml
Disinstallazione
kubectl delete milvus my-release
Note
- Aggiornamento dalla versione 2.5.x alla 2.6.x: limitazioni relative alle code dei messaggi: durante l’aggiornamento a Milvus v3.0.1, è necessario mantenere la scelta attuale della coda dei messaggi. Il passaggio da un sistema di code dei messaggi a un altro durante l’aggiornamento non è supportato. Il supporto per la modifica dei sistemi di code dei messaggi sarà disponibile nelle versioni future. Se si utilizza Kafka e si desidera mantenerlo, non modificare la coda dei messaggi durante l'aggiornamento.
- Sono supportate solo le versioni 2.x e 3.x di Kafka.
- Per la connettività SASL/SSL, consultare Connettersi a Kafka con SASL/SSL.