• نبذة عن ميلفوس
  • ابدأ الآن
  • المفاهيم
  • دليل المستخدم
  • استيراد البيانات
  • أدوات الذكاء الاصطناعي
  • دليل الإدارة
  • الأدوات
  • عمليات الدمج
  • البرامج التعليمية
  • الأسئلة الشائعة
  • API Reference

تكوين تخزين الرسائل مع مشغل Milvus

يستخدم Milvus RocksMQ أو Pulsar أو Kafka لإدارة سجلات التغييرات الأخيرة، وإخراج سجلات الدفق، وتوفير اشتراكات السجل. يقدم هذا الموضوع كيفية تكوين تبعيات تخزين الرسائل عند تثبيت Milvus مع مشغل Milvus. لمزيد من التفاصيل، راجع تكوين تخزين الرسائل مع مشغل Milvus في مستودع مشغل Milvus.

يفترض هذا الموضوع أنك قمت بنشر مشغل Milvus.

راجع نشر مشغل Milvus لمزيد من المعلومات.

تحتاج إلى تحديد ملف تكوين لاستخدام مشغل Milvus لبدء تشغيل مجموعة Milvus.

kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml

تحتاج فقط إلى تحرير قالب التعليمات البرمجية في milvus_cluster_default.yaml لتكوين تبعيات الطرف الثالث. تقدم الأقسام التالية كيفية تكوين تخزين الكائنات و etcd وPulsar على التوالي.

قبل أن تبدأ

يوضح الجدول أدناه ما إذا كانت RocksMQ و Pulsar و Kafka و Woodpecker مدعومة في وضع Milvus المستقل ووضع المجموعة.

RocksMQبولساركافكانقار الخشب
الوضع المستقل✔️✔️✔️✔️
الوضع العنقودي✖️✔️✔️✔️

هناك أيضًا قيود أخرى لتحديد تخزين الرسائل:

  • يتم دعم مخزن رسائل واحد فقط لمثيل Milvus واحد. ومع ذلك لا يزال لدينا توافق مع الإصدارات السابقة مع تعيين مخازن رسائل متعددة لمثيل واحد. الأولوية كما يلي:
    • الوضع المستقل: RocksMQ (افتراضي)> بولسار > كافكا
    • الوضع العنقودي: بولسار (افتراضي)> كافكا > كافكا
  • لا يمكن تغيير تخزين الرسائل أثناء تشغيل نظام Milvus.
  • يتم دعم إصدار Kafka 2.x أو 3.x فقط.
  • قيود الترقية: قيود قائمة انتظار الرسائل: عند الترقية إلى الإصدار 2.6.15 من Milvus، يجب الحفاظ على اختيار قائمة انتظار الرسائل الحالية. التبديل بين أنظمة طابور الرسائل المختلفة أثناء الترقية غير مدعوم. سيتوفر دعم تغيير أنظمة قائمة انتظار الرسائل في الإصدارات المستقبلية.

تكوين RocksMQ

RocksMQ هو المخزن الافتراضي للرسائل في نظام Milvus المستقل.

وحالياً، يمكنك فقط تكوين RocksMQ كمخزن للرسائل في نظام Milvus المستقل مع مشغل Milvus.

مثال

يقوم المثال التالي بتكوين خدمة RocksMQ.

apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
  name: milvus
spec:
  mode: standalone
  dependencies:
    msgStreamType: rocksmq
    rocksmq:
      persistence:
        enabled: true
        pvcDeletion: true
        persistentVolumeClaim:
          spec:
            accessModes: ["ReadWriteOnce"]
            storageClassName: "local-path"  # Specify your storage class
            resources:
              requests:
                storage: 10Gi  # Specify your desired storage size
  components: {}
  config: {}
خيارات التكوين الرئيسية:
  • msgStreamType:: rocksmq: تعيين RocksMQ صراحةً كقائمة انتظار الرسائل
  • persistence.enabled: تمكين التخزين الدائم لبيانات RocksMQ.
  • persistence.pvcDeletion: عندما يكون صحيحًا، سيتم حذف PVC عندما يتم حذف مثيل Milvus
  • persistentVolumeClaim.spec: مواصفات Kubernetes PVC القياسية
  • accessModes: عادةً ReadWriteOnce لتخزين الكتل
  • storageClassName: فئة التخزين الخاصة بمجموعتك
  • storage: حجم وحدة التخزين الثابتة

تكوين Woodpecker

Woodpecker هو سجل كتابة أمامي سحابي أصلي (WAL) مصمم لتخزين الكائنات. وهو يوفر إنتاجية عالية، ونفقات تشغيلية منخفضة، وقابلية توسع سلسة. لمزيد من التفاصيل، راجع استخدام Woodpecker.

تكوين بولسار

يدير Pulsar سجلات التغييرات الأخيرة، ويخرج سجلات الدفق، ويوفر اشتراكات السجل. يتم دعم تكوين Pulsar لتخزين الرسائل في كل من Milvus المستقل و Milvus cluster. ومع ذلك، مع مشغل Milvus، يمكنك فقط تكوين Pulsar كمخزن للرسائل لمجموعة Milvus العنقودية. أضف الحقول المطلوبة ضمن spec.dependencies.pulsar لتكوين Pulsar.

pulsar يدعم external و inCluster.

بولسار خارجي

external يشير إلى استخدام خدمة بولسار خارجية. تتضمن الحقول المستخدمة لتكوين خدمة بولسار خارجية ما يلي:

  • external: تشير القيمة true إلى أن ميلفوس يستخدم خدمة بولسار خارجية.
  • endpoints: نقاط نهاية بولسار.

مثال

يقوم المثال التالي بتكوين خدمة بولسار خارجية.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec:
  dependencies: # Optional
    pulsar: # Optional
      # Whether (=true) to use an existed external pulsar as specified in the field endpoints or 
      # (=false) create a new pulsar inside the same kubernetes cluster for milvus.
      external: true # Optional default=false
      # The external pulsar endpoints if external=true
      endpoints:
      - 192.168.1.1:6650
  components: {}
  config: {}           

بولسار داخلي

inCluster يشير إلى أنه عند بدء تشغيل مجموعة Milvus، تبدأ خدمة Pulsar تلقائياً في المجموعة.

مثال

يقوم المثال التالي بتكوين خدمة 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
            resoureces:
              limit:
                cpu: '4'
              memory: 8Gi
            requests:
              cpu: 200m
              memory: 512Mi
          broker:
            replicaCount: 1
            configData:
              ## Enable `autoSkipNonRecoverableData` since bookkeeper is running
              ## without persistence
              autoSkipNonRecoverableData: "true"
              managedLedgerDefaultEnsembleSize: "1"
              managedLedgerDefaultWriteQuorum: "1"
              managedLedgerDefaultAckQuorum: "1"
          proxy:
            replicaCount: 1
  components: {}
  config: {}            
يحدد هذا المثال أعداد النسخ المتماثلة لكل مكون من مكونات Pulsar، وموارد الحوسبة الخاصة ب Pulsar BookKeeper، وتكوينات أخرى.
ابحث عن عناصر التكوين الكاملة لتكوين خدمة Pulsar الداخلية في القيم.yaml. أضف عناصر التكوين حسب الحاجة ضمن pulsar.inCluster.values كما هو موضح في المثال السابق.

بافتراض أن ملف التكوين اسمه milvuscluster.yaml ، قم بتشغيل الأمر التالي لتطبيق التكوين.

kubectl apply -f milvuscluster.yaml

تكوين كافكا

Pulsar هو مخزن الرسائل الافتراضي في مجموعة Milvus. إذا كنت تريد استخدام كافكا، أضف الحقل الاختياري msgStreamType لتكوين كافكا.

kafka يدعم external و inCluster.

كافكا الخارجية

external يشير إلى استخدام خدمة كافكا خارجية.

تتضمن الحقول المستخدمة لتكوين خدمة كافكا خارجية ما يلي:

  • external: تشير القيمة true إلى أن ميلفوس يستخدم خدمة كافكا خارجية.
  • brokerList: قائمة الوسطاء لإرسال الرسائل إليهم.

مثال

يقوم المثال التالي بتكوين خدمة كافكا خارجية.

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: ""
  # Omit other fields ...
  dependencies:
    # Omit other fields ...
    msgStreamType: "kafka"
    kafka:
      external: true
      brokerList: 
        - "kafkaBrokerAddr1:9092"
        - "kafkaBrokerAddr2:9092"
        # ...

يتم دعم تكوينات SASL في المشغل الإصدار 0.8.5 أو إصدار أعلى.

كافكا الداخلية

inCluster يشير إلى أنه عند بدء تشغيل مجموعة Milvus، تبدأ خدمة كافكا تلقائيًا في المجموعة.

مثال

يقوم المثال التالي بتكوين خدمة كافكا داخلية.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
  name: my-release
  labels:
    app: milvus
spec: 
  dependencies:
    msgStreamType: "kafka"
    kafka:
      inCluster: 
        values: {} # values can be found in https://artifacthub.io/packages/helm/bitnami/kafka
  components: {}
  config: {}

ابحث عن عناصر التكوين الكاملة لتكوين خدمة كافكا الداخلية هنا. أضف عناصر التكوين حسب الحاجة ضمن kafka.inCluster.values.

على افتراض أن ملف التكوين اسمه milvuscluster.yaml ، قم بتشغيل الأمر التالي لتطبيق التكوين.

kubectl apply -f milvuscluster.yaml

ما التالي

تعرف على كيفية تكوين تبعيات Milvus الأخرى باستخدام مشغل Milvus:

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟