Gunakan Pulsar sebagai antrian pesan Milvus
Apache Pulsar adalah salah satu backend antrian pesan (WAL) yang didukung oleh Milvus. Pada Milvus 3.x, Woodpecker adalah antrian pesan default; Pulsar tetap didukung sepenuhnya bagi pengguna yang lebih memilihnya. Pulsar terutama digunakan dengan Milvus Distributed (kluster); penerapan mandiri biasanya menggunakan Woodpecker tertanam atau RocksMQ.
Kompatibilitas versi
| Versi Milvus | Versi Pulsar yang didukung | Default |
|---|---|---|
| 2.5.x dan yang lebih baru | Pulsar v3 (disarankan) atau Pulsar v2 | Pulsar v3 (melalui Helm / Operator Milvus) |
| 2.4.x dan versi sebelumnya | Pulsar v2 | Pulsar v2 |
Sejak Milvus 2.5, chart Helm Milvus dan Milvus Operator secara default melakukan deployment Pulsar v3; Pulsar v2 tetap kompatibel. Lihat Memutakhirkan Pulsar dari v2 ke v3 dan Tetap Menggunakan Pulsar v2.
Deploy kluster Milvus dengan Pulsar menggunakan Helm
Instal
Untuk mengimplementasikan kluster Milvus yang menggunakan Pulsar yang disertakan (bukan Woodpecker), instal chart Helm dengan Streaming Node diaktifkan:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.0 \
--set pulsarv3.enabled=true \
--set woodpecker.enabled=false \
--set streaming.enabled=true \
--set indexNode.enabled=false
Pada Kubernetes v1.25 dan yang lebih baru, jika Anda mengalami masalah API PodDisruptionBudget dari sub-chart Pulsar yang disertakan, nonaktifkan kebijakan PDB Pulsar:
helm install my-release zilliztech/milvus \
--set pulsar.bookkeeper.pdb.usePolicy=false \
--set pulsar.broker.pdb.usePolicy=false \
--set pulsar.proxy.pdb.usePolicy=false \
--set pulsar.zookeeper.pdb.usePolicy=false
Konfigurasi
Untuk menghubungkan Milvus ke layanan Pulsar eksternal, nonaktifkan Pulsar yang disertakan dan aktifkan opsi " externalPulsar " dalam pengaturan override ` values.yaml `:
pulsarv3:
enabled: false
externalPulsar:
enabled: true
host: <your_pulsar_host>
port: 6650
maxMessageSize: "5242880" # 5 MB, maximum size of each message
tenant: public
namespace: default
helm install my-release zilliztech/milvus -f values.yaml
Hapus
helm uninstall my-release
Jika Anda menggunakan Pulsar yang disertakan dan ingin menghapus data yang tersimpan, hapus PVC Pulsar (bernama my-release-pulsarv3-*):
kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...
Deploy kluster Milvus dengan Pulsar menggunakan Milvus Operator
Dengan Milvus Operator, konfigurasikan Pulsar di bawah spec.dependencies.pulsar (hanya didukung untuk kluster Milvus). pulsar mendukung external dan inCluster.
Pulsar Eksternal
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
external: true
endpoints:
- 192.168.1.1:6650
components: {}
config: {}
Pulsar Internal (dalam kluster)
apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
name: my-release
labels:
app: milvus
spec:
dependencies:
pulsar:
inCluster:
values:
components:
autorecovery: false
zookeeper:
replicaCount: 1
bookkeeper:
replicaCount: 1
broker:
replicaCount: 1
configData:
autoSkipNonRecoverableData: "true"
managedLedgerDefaultEnsembleSize: "1"
managedLedgerDefaultWriteQuorum: "1"
managedLedgerDefaultAckQuorum: "1"
proxy:
replicaCount: 1
components: {}
config: {}
Terapkan konfigurasi (dengan asumsi berkasnya adalah milvuscluster.yaml):
kubectl apply -f milvuscluster.yaml
Hapus Instalasi
kubectl delete milvus my-release
Catatan
- Meningkatkan versi dari 2.5.x ke 2.6.x: Batasan Antrian Pesan: Saat meningkatkan versi ke Milvus v3.0.0, Anda harus mempertahankan pilihan antrian pesan Anda saat ini. Beralih di antara sistem antrian pesan yang berbeda selama proses peningkatan versi tidak didukung. Dukungan untuk mengubah sistem antrian pesan akan tersedia di versi mendatang. Jika Anda menjalankan Pulsar dan ingin tetap menggunakannya, jangan ubah antrian pesan selama proses peningkatan versi.
- Pulsar v2 → v3: lihat Memutakhirkan Pulsar dari v2 ke v3; untuk tetap menggunakan v2, lihat Terus Menggunakan Pulsar v2.