Milvus 메시지 큐로 Kafka 사용
Apache Kafka는 Milvus가 지원하는 메시지 큐(WAL) 백엔드 중 하나입니다. Milvus 3.x에서는 Woodpecker가 기본 메시지 큐로 설정되어 있지만, Kafka를 선호하는 사용자를 위해 Kafka에 대한 지원은 여전히 완벽하게 제공됩니다. Kafka는 주로 Milvus Distributed(클러스터)와 함께 사용되며, 독립형 배포 환경에서는 일반적으로 내장형 Woodpecker 또는 RocksMQ가 사용됩니다.
버전 호환성
- Milvus는 Kafka 2.x 및 3.x만 지원합니다.
- Kafka는 Helm 또는 Milvus Operator를 통해 Milvus Distributed(클러스터)에 맞게 구성됩니다.
Helm을 사용하여 Kafka와 함께 Milvus 클러스터 배포하기
설치 및 구성
외부 Kafka 서비스를 사용하려면 번들된 Pulsar를 비활성화하고 values.yaml 오버라이드에서 externalKafka 를 활성화한 다음, 이를 사용하여 Milvus를 설치하십시오:
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
SASL/SSL 인증에 대한 자세한 내용은 SASL/SSL을 사용하여 Kafka에 연결하기를 참조하십시오.
제거
helm uninstall my-release
Milvus Operator를 사용하여 Kafka와 함께 Milvus 클러스터 배포
Milvus Operator를 사용하여 spec.dependencies.msgStreamType: "kafka" 를 설정하고, spec.dependencies.kafka (클러스터 전용)에서 Kafka를 구성하십시오. kafka 는 external 및 inCluster 를 지원합니다.
외부 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 구성은 Milvus Operator v0.8.5 이상에서 지원됩니다.
내부(클러스터 내) 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: {}
다음과 같이 구성을 적용합니다(파일명이 milvuscluster.yaml 라고 가정함):
kubectl apply -f milvuscluster.yaml
제거
kubectl delete milvus my-release
참고
- 2.5.x에서 2.6.x로 업그레이드: 메시지 큐 제한 사항: Milvus v3.0.0으로 업그레이드할 때는 현재 사용 중인 메시지 큐를 그대로 유지해야 합니다. 업그레이드 과정에서 다른 메시지 큐 시스템으로 전환하는 것은 지원되지 않습니다. 메시지 큐 시스템 변경에 대한 지원은 향후 버전에서 제공될 예정입니다. Kafka를 실행 중이며 이를 계속 사용하려는 경우, 업그레이드 중에 메시지 큐를 변경하지 마십시오.
- Kafka 2.x 및 3.x 만 지원됩니다.
- SASL/SSL 연결에 대해서는 ‘SASL/SSL을 사용하여 Kafka에 연결’을 참조하십시오.