تكوين تخزين الرسائل باستخدام Docker Compose أو Helm
يستخدم Milvus نظام Pulsar أو Kafka لإدارة سجلات التغييرات الأخيرة، وإخراج سجلات الدفق، وتوفير اشتراكات السجلات. Pulsar هو نظام تخزين الرسائل الافتراضي. يقدم هذا الموضوع كيفية تكوين تخزين الرسائل باستخدام Docker Compose أو Helm.
يمكنك تكوين Pulsar مع Docker Comp ose أو على K8s وتكوين Kafka على K8s.
قيود قائمة انتظار الرسائل: عند الترقية إلى الإصدار 2.6.16 من Milvus، يجب عليك الحفاظ على اختيارك الحالي لقائمة انتظار الرسائل. التبديل بين أنظمة طابور الرسائل المختلفة أثناء الترقية غير مدعوم. سيتوفر دعم تغيير أنظمة قوائم انتظار الرسائل في الإصدارات المستقبلية.
تكوين Pulsar باستخدام Docker Compose
1. تكوين Pulsar
لتهيئة 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
تكوين Pulsar مع Helm
بالنسبة لمجموعات Milvus على K8s، يمكنك تكوين Pulsar في نفس الأمر الذي يبدأ تشغيل Milvus. وبدلاً من ذلك، يمكنك تكوين Pulsar باستخدام الملف values.yml على المسار /charts/milvus في مستودع milvus-helm قبل بدء تشغيل Milvus.
للحصول على تفاصيل حول كيفية تكوين ملف Milvus باستخدام Helm، راجع تكوين Milvus باستخدام مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بـ Pulsar، راجع التكوينات المتعلقة بـ Pulsar. |
استخدام ملف YAML
- قم بتكوين القسم
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
- بعد تكوين الأقسام السابقة وحفظ الملف
values.yaml، قم بتشغيل الأمر التالي لتثبيت ملف Milvus الذي يستخدم تكوينات Pulsar.
helm install <your_release_name> milvus/milvus -f values.yaml
تكوين Woodpecker مع Helm
بالنسبة لمجموعات ميلفوس على K8s، يمكنك تكوين Woodpecker في نفس الأمر الذي يبدأ تشغيل ميلفوس. وبدلاً من ذلك، يمكنك تكوين Woodpecker باستخدام الملف values.yml على المسار /charts/milvus في مستودع milvus-helm قبل بدء تشغيل Milvus.
للحصول على تفاصيل حول كيفية تكوين ميلفوس باستخدام Helm، راجع تكوين ميلفوس باستخدام مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بنقار الخشب، ارجع إلى تكوينات متعلقة بنقار الخشب. |
استخدام ملف YAML
- قم بتكوين القسم
externalConfigFilesفي الملفvalues.yaml.
extraConfigFiles:
user.yaml: |+
woodpecker:
meta:
type: etcd # The Type of the metadata provider. currently only support etcd.
prefix: woodpecker # The Prefix of the metadata provider. default is woodpecker.
client:
segmentAppend:
queueSize: 10000 # The size of the queue for pending messages to be sent of each log.
maxRetries: 3 # Maximum number of retries for segment append operations.
segmentRollingPolicy:
maxSize: 256M # Maximum size of a segment.
maxInterval: 10m # Maximum interval between two segments, default is 10 minutes.
maxBlocks: 1000 # Maximum number of blocks in a segment
auditor:
maxInterval: 10s # Maximum interval between two auditing operations, default is 10 seconds.
logstore:
segmentSyncPolicy:
maxInterval: 200ms # Maximum interval between two sync operations, default is 200 milliseconds.
maxIntervalForLocalStorage: 10ms # Maximum interval between two sync operations local storage backend, default is 10 milliseconds.
maxBytes: 256M # Maximum size of write buffer in bytes.
maxEntries: 10000 # Maximum entries number of write buffer.
maxFlushRetries: 5 # Maximum size of write buffer in bytes.
retryInterval: 1000ms # Maximum interval between two retries. default is 1000 milliseconds.
maxFlushSize: 2M # Maximum size of a fragment in bytes to flush.
maxFlushThreads: 32 # Maximum number of threads to flush data
segmentCompactionPolicy:
maxSize: 2M # The maximum size of the merged files.
maxParallelUploads: 4 # The maximum number of parallel upload threads for compaction.
maxParallelReads: 8 # The maximum number of parallel read threads for compaction.
segmentReadPolicy:
maxBatchSize: 16M # Maximum size of a batch in bytes.
maxFetchThreads: 32 # Maximum number of threads to fetch data.
storage:
type: minio # The Type of the storage provider. Valid values: [minio, local]
rootPath: /var/lib/milvus/woodpecker # The root path of the storage provider.
- | بعد تكوين الأقسام السابقة وحفظ الملف
values.yaml، قم بتشغيل الأمر التالي لتثبيت ملف Milvus الذي يستخدم تكوينات Woodpecker.
helm install <your_release_name> milvus/milvus -f values.yaml
تكوين كافكا مع هيلم
بالنسبة لمجموعات ميلفوس على K8s، يمكنك تكوين كافكا في نفس الأمر الذي يبدأ تشغيل ميلفوس. بدلاً من ذلك، يمكنك تهيئة كافكا باستخدام الملف values.yml على مسار /charts/milvus في مستودع milvus-helm قبل بدء تشغيل Milvus.
للحصول على تفاصيل حول كيفية تكوين ملف Milvus باستخدام Helm، راجع تكوين ملف Milvus باستخدام مخططات Helm. للحصول على تفاصيل حول عناصر التكوين المتعلقة بـ Pulsar، راجع التكوينات المتعلقة بـ Pulsar.
استخدام ملف YAML
- قم بتكوين القسم
externalConfigFilesفي الملفvalues.yamlإذا كنت تريد استخدام كافكا كنظام تخزين الرسائل.
extraConfigFiles:
user.yaml: |+
kafka:
brokerList:
- <your_kafka_address>:<your_kafka_port>
saslUsername:
saslPassword:
saslMechanisms: PLAIN
securityProtocol: SASL_SSL
- بعد تكوين الأقسام السابقة وحفظ الملف
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 في النهاية قبل أن تقوم بتغيير مخزن الرسائل فعلياً.
ما التالي
تعلم كيفية تكوين تبعيات Milvus الأخرى باستخدام Docker Compose أو Helm: