استخدام Pulsar كخلفية لقائمة انتظار الرسائل (WAL) في Milvus
يعد Apache Pulsar أحد الخلفيات الخاصة بقوائم انتظار الرسائل (WAL) التي يدعمها Milvus. في Milvus 3.x، يُعد Woodpecker قائمة انتظار الرسائل الافتراضية؛ ويظل Pulsar مدعومًا بالكامل للمستخدمين الذين يفضلونه. يُستخدم Pulsar بشكل أساسي مع Milvus Distributed (المجموعة)؛ بينما تستخدم عمليات النشر المستقلة عادةً Woodpecker المدمج أو RocksMQ.
توافق الإصدارات
| إصدار Milvus | إصدار Pulsar المدعوم | الافتراضي |
|---|---|---|
| 2.5.x والإصدارات الأحدث | Pulsar v3 (موصى به) أو Pulsar v2 | Pulsar v3 (عبر Helm / Milvus Operator) |
| 2.4.x والإصدارات الأقدم | Pulsar v2 | Pulsar الإصدار 2 |
بدءًا من Milvus 2.5، يقوم مخطط Milvus Helm و Milvus Operator بنشر Pulsar v3 بشكل افتراضي؛ ويظل Pulsar v2 متوافقًا. راجع ترقية Pulsar من الإصدار v2 إلى الإصدار v3 ومواصلة استخدام Pulsar v2.
نشر مجموعة Milvus مع Pulsar باستخدام Helm
التثبيت
لنشر مجموعة Milvus التي تستخدم Pulsar المضمّن (بدلاً من Woodpecker)، قم بتثبيت مخطط Helm مع تمكين Streaming Node:
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
في Kubernetes الإصدار 1.25 والإصدارات الأحدث، إذا واجهت مشكلات في واجهة برمجة تطبيقات (API) PodDisruptionBudget (PDB) من مخطط Pulsar الفرعي المضمّن، فقم بتعطيل سياسات 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
التكوين
لربط Milvus بخدمة Pulsar خارجية، قم بتعطيل Pulsar المدمج وتمكين " externalPulsar " في تجاوز " 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
إلغاء التثبيت
helm uninstall my-release
إذا كنت قد استخدمت Pulsar المضمن وترغب في إزالة بياناته الدائمة، فاحذف PVCs الخاصة بـ Pulsar (المسماة my-release-pulsarv3-*):
kubectl get pvc | grep my-release-pulsarv3
kubectl delete pvc <pulsar-pvc-name> ...
نشر مجموعة Milvus مع Pulsar باستخدام Milvus Operator
باستخدام Milvus Operator، قم بتكوين Pulsar ضمن spec.dependencies.pulsar (مدعوم لمجموعة Milvus فقط). يدعم pulsar كل من external و inCluster.
Pulsar الخارجي
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 الداخلي (داخل المجموعة)
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: {}
قم بتطبيق التكوين (بافتراض أن الملف هو milvuscluster.yaml):
kubectl apply -f milvuscluster.yaml
إلغاء التثبيت
kubectl delete milvus my-release
ملاحظات
- الترقية من الإصدار 2.5.x إلى الإصدار 2.6.x: قيود قائمة انتظار الرسائل: عند الترقية إلى Milvus v3.0.0، يجب الحفاظ على اختيارك الحالي لقائمة انتظار الرسائل. لا يتم دعم التبديل بين أنظمة قائمة انتظار الرسائل المختلفة أثناء الترقية. سيتوفر دعم تغيير أنظمة قائمة انتظار الرسائل في الإصدارات المستقبلية. إذا كنت تستخدم Pulsar وترغب في الاحتفاظ به، فلا تقم بتغيير قائمة انتظار الرسائل أثناء الترقية.
- Pulsar v2 → v3: راجع ترقية Pulsar من الإصدار v2 إلى v3؛ للاستمرار في استخدام الإصدار v2، راجع الاستمرار في استخدام Pulsar v2.