🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
الصفحة الرئيسية
  • دليل الإدارة
  • Home
  • Docs
  • دليل الإدارة

  • إدارة التبعيات

  • مع Docker أو Helm

  • تخزين الرسائل

تكوين تخزين الرسائل باستخدام Docker Compose أو Helm

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

يمكنك تكوين Pulsar مع Docker Comp ose أو على K8s وتكوين Kafka على K8s.

تكوين بولسار باستخدام Docker Compose

1. تكوين بولسار

لتهيئة Pulsar مع Docker Compose، قم بتوفير القيم الخاصة بك للقسم pulsar في الملف milvus.yaml على مسار milvus/configs.

pulsar:
  address: localhost # Address of pulsar
  port: 6650 # Port of pulsar
  maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.

راجع التكوينات المتعلقة بـ Pulsar لمزيد من المعلومات.

2. تشغيل ميلفوس

قم بتشغيل الأمر التالي لبدء تشغيل Milvus الذي يستخدم تكوينات Pulsar.

docker compose up
لا تدخل التكوينات حيز التنفيذ إلا بعد بدء تشغيل ميلفوس. انظر بدء تشغيل Milvus لمزيد من المعلومات.

تكوين Pulsar مع Helm

بالنسبة لمجموعات Milvus على K8s، يمكنك تكوين Pulsar في نفس الأمر الذي يبدأ تشغيل Milvus. وبدلاً من ذلك، يمكنك تكوين Pulsar باستخدام الملف values.yml على المسار /charts/milvus في مستودع milvus-helm قبل بدء تشغيل Milvus.

للحصول على تفاصيل حول كيفية تكوين ملف Milvus باستخدام Helm، راجع تكوين Milvus باستخدام مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بـ Pulsar، راجع التكوينات المتعلقة بـ Pulsar. |

استخدام ملف YAML

  1. قم بتكوين القسم externalConfigFiles في الملف values.yaml.
extraConfigFiles:
  user.yaml: |+
    pulsar:
      address: localhost # Address of pulsar
      port: 6650 # Port of Pulsar
      webport: 80 # Web port of pulsar, if you connect direcly without proxy, should use 8080
      maxMessageSize: 5242880 # 5 * 1024 * 1024 Bytes, Maximum size of each message in pulsar.
      tenant: public
      namespace: default    
  1. بعد تهيئة الأقسام السابقة وحفظ الملف values.yaml ، قم بتشغيل الأمر التالي لتثبيت ملف Milvus الذي يستخدم تكوينات بولسار.
helm install <your_release_name> milvus/milvus -f values.yaml

تكوين كافكا مع هيلم

بالنسبة لمجموعات Milvus على K8s، يمكنك تكوين Kafka في نفس الأمر الذي يبدأ تشغيل Milvus. وبدلاً من ذلك، يمكنك تكوين كافكا باستخدام الملف values.yml على مسار /charts/milvus في مستودع milvus-helm قبل بدء تشغيل Milvus.

للحصول على تفاصيل حول كيفية تكوين ملف Milvus باستخدام Helm، راجع تكوين ملف Milvus باستخدام مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بـ Pulsar، راجع التكوينات المتعلقة بـ Pulsar.

استخدام ملف YAML

  1. قم بتكوين القسم externalConfigFiles في الملف values.yaml إذا كنت تريد استخدام كافكا كنظام تخزين الرسائل.
extraConfigFiles:
  user.yaml: |+
    kafka:
      brokerList:
        -  <your_kafka_address>:<your_kafka_port>
      saslUsername:
      saslPassword:
      saslMechanisms: PLAIN
      securityProtocol: SASL_SSL    
  1. بعد تكوين الأقسام السابقة وحفظ الملف values.yaml ، قم بتشغيل الأمر التالي لتثبيت ملف Milvus الذي يستخدم تكوينات كافكا.
helm install <your_release_name> milvus/milvus -f values.yaml

تكوين RocksMQ مع Helm

يستخدم ملف Milvus المستقل RocksMQ كمخزن افتراضي للرسائل. للحصول على خطوات مفصلة حول كيفية تكوين Milvus مع Helm، راجع تكوين Milvus مع مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بـ RocksMQ، راجع التكوينات المتعلقة بـ RocksMQ.

  • إذا قمت ببدء تشغيل Milvus مع RocksMQ وأردت تغيير إعداداته، يمكنك تشغيل helm upgrade -f بالإعدادات التي تم تغييرها في ملف YAML التالي.

  • إذا كنت قد قمت بتثبيت Milvus مستقل باستخدام Helm مع مخزن رسائل غير RocksMQ وتريد تغييره مرة أخرى إلى RocksMQ، فقم بتشغيل helm upgrade -f مع ملف YAML التالي بعد مسح جميع المجموعات وإيقاف Milvus.

extraConfigFiles:
  user.yaml: |+
    rocksmq:
      # The path where the message is stored in rocksmq
      # please adjust in embedded Milvus: /tmp/milvus/rdb_data
      path: /var/lib/milvus/rdb_data
      lrucacheratio: 0.06 # rocksdb cache memory ratio
      rocksmqPageSize: 67108864 # 64 MB, 64 * 1024 * 1024 bytes, The size of each page of messages in rocksmq
      retentionTimeInMinutes: 4320 # 3 days, 3 * 24 * 60 minutes, The retention time of the message in rocksmq.
      retentionSizeInMB: 8192 # 8 GB, 8 * 1024 MB, The retention size of the message in rocksmq.
      compactionInterval: 86400 # 1 day, trigger rocksdb compaction every day to remove deleted data
      # compaction compression type, only support use 0,7.
      # 0 means not compress, 7 will use zstd
      # len of types means num of rocksdb level.
      compressionTypes: [0, 0, 7, 7, 7]    

لا ينصح بتغيير مخزن الرسائل. إذا كنت ترغب في القيام بذلك، أوقف جميع عمليات DDL، ثم قم باستدعاء FlushAll API لمسح جميع المجموعات، وأخيراً أوقف Milvus في النهاية قبل أن تقوم بتغيير مخزن الرسائل فعلياً.

تكوين NATS مع Helm

NATS هو مخزن رسائل تجريبي بديل لـ RocksMQ. للحصول على خطوات مفصلة حول كيفية تكوين ميلفوس مع Helm، راجع تكوين ميلفوس مع مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بـ RocksMQ، راجع التكوينات المتعلقة بـ NATS.

  • إذا قمت ببدء تشغيل ملف Milvus مع NATS وأردت تغيير إعداداته، يمكنك تشغيل helm upgrade -f بالإعدادات التي تم تغييرها في ملف YAML التالي.

  • إذا كنت قد قمت بتثبيت Milvus مستقل مع مخزن رسائل غير NATS وتريد تغييره إلى NATS، قم بتشغيل helm upgrade -f مع ملف YAML التالي بعد مسح جميع المجموعات وإيقاف Milvus.

extraConfigFiles:
  user.yaml: |+
    mq:
      type: natsmq
    natsmq:
      # server side configuration for natsmq.
      server: 
        # 4222 by default, Port for nats server listening.
        port: 4222 
        # /var/lib/milvus/nats by default, directory to use for JetStream storage of nats.
        storeDir: /var/lib/milvus/nats 
        # (B) 16GB by default, Maximum size of the 'file' storage.
        maxFileStore: 17179869184 
        # (B) 8MB by default, Maximum number of bytes in a message payload.
        maxPayload: 8388608 
        # (B) 64MB by default, Maximum number of bytes buffered for a connection applies to client connections.
        maxPending: 67108864 
        # (√ms) 4s by default, waiting for initialization of natsmq finished.
        initializeTimeout: 4000 
        monitor:
          # false by default, If true enable debug log messages.
          debug: false 
          # true by default, If set to false, log without timestamps.
          logTime: true 
          # no log file by default, Log file path relative to.. .
          logFile: 
          # (B) 0, unlimited by default, Size in bytes after the log file rolls over to a new one.
          logSizeLimit: 0 
        retention:
          # (min) 3 days by default, Maximum age of any message in the P-channel.
          maxAge: 4320 
          # (B) None by default, How many bytes the single P-channel may contain. Removing oldest messages if the P-channel exceeds this size.
          maxBytes:
          # None by default, How many message the single P-channel may contain. Removing oldest messages if the P-channel exceeds this limit.    
          maxMsgs: 

الاختيار بين RocksMQ و NATS؟

يستخدم RocksMQ CGO للتفاعل مع RocksDB ويدير الذاكرة بنفسه، بينما يقوم NATS المدمج في تثبيت Milvus بتفويض إدارة الذاكرة إلى جامع القمامة (GC) الخاص بـ Go.

في السيناريو الذي تكون فيه حزمة البيانات أصغر من 64 كيلوبايت، يتفوق RocksDB من حيث استخدام الذاكرة واستخدام وحدة المعالجة المركزية ووقت الاستجابة. من ناحية أخرى، إذا كانت حزمة البيانات أكبر من 64 كيلوبايت، يتفوق NATS من حيث وقت الاستجابة مع وجود ذاكرة كافية وجدولة GC مثالية.

في الوقت الحالي، يُنصح باستخدام NATS للتجارب فقط.

ما التالي

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

جرب Managed Milvus مجاناً

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

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

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