Verwendung von Kafka als Milvus-Nachrichtenwarteschlange
Apache Kafka ist eines der von Milvus unterstützten Backends für Nachrichtenwarteschlangen (WAL). In Milvus 3.x ist Woodpecker die Standard-Nachrichtenwarteschlange; Kafka wird jedoch weiterhin vollständig unterstützt, falls Nutzer dies bevorzugen. Kafka wird in erster Linie mit Milvus Distributed (Cluster) verwendet; bei eigenständigen Bereitstellungen kommen in der Regel das eingebettete Woodpecker oder RocksMQ zum Einsatz.
Versionskompatibilität
- Milvus unterstützt ausschließlich Kafka 2.x und 3.x.
- Kafka wird für Milvus Distributed (Cluster) über Helm oder den Milvus Operator konfiguriert.
Stellen Sie einen Milvus-Cluster mit Kafka mithilfe von Helm bereit
Installieren und konfigurieren
Um einen externen Kafka-Dienst zu verwenden, deaktivieren Sie den mitgelieferten Pulsar und aktivieren Sie „ externalKafka “ in einer „ values.yaml “-Überschreibung. Installieren Sie anschließend Milvus damit:
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
Einzelheiten zur SASL/SSL-Authentifizierung finden Sie unter „Verbindung zu Kafka mit SASL/SSL herstellen“.
Deinstallieren
helm uninstall my-release
Bereitstellung eines Milvus-Clusters mit Kafka mithilfe des Milvus Operators
Legen Sie mit dem Milvus Operator „ spec.dependencies.msgStreamType: "kafka" “ fest und konfigurieren Sie Kafka unter „ spec.dependencies.kafka “ (nur Cluster). „ kafka “ unterstützt „ external “ und „ inCluster “.
Externes 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-Konfigurationen werden ab Milvus Operator v0.8.5 unterstützt.
Internes (clusterinternes) 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: {}
Wenden Sie die Konfiguration an (vorausgesetzt, die Datei heißt „ milvuscluster.yaml “):
kubectl apply -f milvuscluster.yaml
Deinstallieren
kubectl delete milvus my-release
Hinweise
- Upgrade von 2.5.x auf 2.6.x: Einschränkungen bei der Nachrichtenwarteschlange: Beim Upgrade auf Milvus v3.0.0 müssen Sie Ihre aktuelle Wahl der Nachrichtenwarteschlange beibehalten. Ein Wechsel zwischen verschiedenen Nachrichtenwarteschlangensystemen während des Upgrades wird nicht unterstützt. Die Unterstützung für den Wechsel des Nachrichtenwarteschlangensystems wird in zukünftigen Versionen verfügbar sein. Wenn Sie Kafka einsetzen und beibehalten möchten, ändern Sie die Nachrichtenwarteschlange während des Upgrades nicht.
- Es werden nur Kafka 2.x und 3.x unterstützt.
- Informationen zur SASL/SSL-Verbindung finden Sie unter „Verbindung zu Kafka mit SASL/SSL herstellen“.