跳到主要内容
版本:v3.0.x

使用 Kafka 作为 Milvus Message Queue

Apache Kafka 是 Milvus 支持的消息队列(WAL)后端之一。在 Milvus 3.x 中,Woodpecker 是默认消息队列;对于偏好 Kafka 的用户,Milvus 仍完整支持 Kafka。Kafka 主要用于 Milvus Distributed(集群);Standalone 部署通常使用内置 Woodpecker 或 RocksMQ

Version compatibility

  • Milvus 仅支持 Kafka 2.x 和 3.x
  • 可通过 Helm 或 Milvus Operator 为 Milvus Distributed(集群)配置 Kafka。

使用 Helm 部署带 Kafka 的 Milvus 集群

安装和配置

要使用外部 Kafka 服务,请在 values.yaml override 中禁用内置 Pulsar 并启用 externalKafka,然后使用该配置安装 Milvus:

YAML
pulsarv3:
enabled: false
externalKafka:
enabled: true
brokerList: <your_kafka_address>:<your_kafka_port>
securityProtocol: SASL_SSL
sasl:
mechanisms: PLAIN
username: ""
password: ""
Shell
helm install my-release zilliztech/milvus -f values.yaml

有关 SASL/SSL 认证的详细信息,请参阅 使用 SASL/SSL 连接 Kafka

Uninstall

Shell
helm uninstall my-release

使用 Milvus Operator 部署带 Kafka 的 Milvus 集群

使用 Milvus Operator 时,将 spec.dependencies.msgStreamType: "kafka",并在 spec.dependencies.kafka 下配置 Kafka(仅适用于集群)。kafka 支持 externalinCluster

External Kafka

YAML
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"

Milvus Operator v0.8.5 或更高版本支持 SASL 配置。

Internal(集群内)Kafka

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

应用配置(假设文件为 milvuscluster.yaml):

Shell
kubectl apply -f milvuscluster.yaml

Uninstall

Shell
kubectl delete milvus my-release

Notes

  • 从 2.5.x 升级到 2.6.xMessage Queue 限制:升级到 Milvus v3.0.0 时,必须保持当前使用的 message queue 选型。升级过程中不支持在不同的 message queue 系统之间切换。未来版本将支持更改 message queue 系统。 如果你运行的是 Kafka 并希望继续使用 Kafka,请不要在升级过程中更改 message queue。
  • 仅支持 Kafka 2.x 和 3.x
  • 如需配置 SASL/SSL 连接,请参阅 使用 SASL/SSL 连接到 Kafka

后续步骤