التبديل بين RocksMQ و Woodpecker

تصف هذه الصفحة كيفية التبديل بين RocksMQ و Woodpecker (الخلفية المحلية أو MinIO) في قائمة انتظار الرسائل (MQ) لنشر Milvus Standalone (Docker Compose) ، في كلا الاتجاهين. للاطلاع على سير العمل العام والمتطلبات الأساسية، راجع التبديل بين قوائم انتظار الرسائل.

  • المتطلبات الأساسية: تتوفر ميزة «التبديل بين قوائم انتظار الرسائل» في Milvus 3.0 والإصدارات الأحدث. قم بترقية مثيل Milvus الخاص بك إلى Milvus 3.0 أو إصدار أحدث قبل البدء — فهذه الميزة غير متوفرة في الإصدارات الأقدم.
  • يتطلب تبديل قائمة انتظار الرسائل (MQ) نشر Docker Compose (الذي يتيح مصدر تكوين etcd). لا يدعم نشر Docker ذو الحاوية الواحدة عملية التبديل.

التبديل من RocksMQ إلى Woodpecker

الخطوة 1: تحقق من تشغيل مثيل Milvus

تحقق من أن مثيل Milvus Standalone Docker Compose يعمل بشكل صحيح — على سبيل المثال، عن طريق إنشاء مجموعة اختبارية، وإدخال البيانات، وتشغيل استعلام.

الخطوة 2: تكوين تخزين Woodpecker

أضف إعدادات Woodpecker إلى تكوين Milvus دون تغيير قيمة mqType. قم بتشغيل الأمر docker exec -it milvus-standalone bash للدخول إلى الحاوية، ثم قم بتحرير الملف /milvus/configs/user.yaml:

woodpecker:
  storage:
    type: minio   # minio or local

أعد تشغيل مثيل Milvus لتطبيق التكوين:

docker compose restart

الخطوة 3: تنفيذ التبديل إلى MQ

إذا كانت هذه هي المرة الأولى التي تقوم فيها بالتبديل إلى Woodpecker، فتخط هذه الملاحظة. وإلا، فقم بتنظيف البيانات والبيانات الوصفية المتبقية لـ Woodpecker قبل التبديل مرة أخرى — فقد تتسبب البيانات المتبقية في حدوث سلوك غير متوقع.

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "woodpecker"}'

عادةً ما يكون منفذ MixCoord هو 9091.

الخطوة 4: تحقق من اكتمال التبديل

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

يتم تسجيل التبديل الناجح في [mqTypeValue=woodpecker].

الخطوة 5: (اختياري) تنظيف بيانات RocksMQ

توجد بيانات RocksMQ في الدلائل volumes/milvus/rdb_data و volumes/milvus/rdb_data_meta_kv المحددة في docker-compose.yaml. إذا كنت تخطط للعودة إلى RocksMQ لاحقًا، فقم بمسح هذه الملفات أولاً لتجنب التعارضات.

التحول من Woodpecker إلى RocksMQ

الخطوة 1: تحقق من تشغيل مثيل Milvus

تأكد من أن مثيل Milvus Standalone Docker Compose يعمل بشكل صحيح.

الخطوة 2: تنفيذ عملية التبديل إلى MQ

تأكد من عدم وجود بيانات RocksMQ متبقية في المثيل من تشغيل سابق. إذا كانت هذه هي المرة الأولى التي تقوم فيها بالتحويل إلى RocksMQ، فتخط هذه الملاحظة؛ وإلا فقم أولاً بمسح البيانات والبيانات الوصفية ذات الصلة بـ RocksMQ.

curl -X POST http://<mixcoord_addr>:<mixcoord_port>/management/wal/alter \
  -H "Content-Type: application/json" \
  -d '{"target_wal_name": "rocksmq"}'

الخطوة 3: التحقق من اكتمال عملية التبديل

docker logs milvus-standalone | grep "successfully updated mq.type configuration in etcd"

يتم تسجيل " [mqTypeValue=rocksmq]" عند نجاح عملية التبديل.

الخطوة 4: (اختياري) تنظيف بيانات Woodpecker

  • البيانات الوصفية (etcd): عادةً ما تكون بادئة مفتاح Woodpecker هي woodpecker/.... اعرضها باستخدام etcdctl get woodpecker --prefix ، ثم احذفها.
  • بيانات التخزين: في وضع MinIO، احذف بيانات السجل الموجودة ضمن <rootPath>/wp/... (عادةً files/wp/...) في الحاوية؛ وفي الوضع المحلي، توجد البيانات على القرص المحلي في volumes/milvus/data/wp/....

إذا كنت تخطط للعودة إلى Woodpecker لاحقًا، فقم بتنظيف هذه الملفات أولاً لتجنب التعارضات.

السيناريوهات المدعومة

مصدر MQمستودع الرسائل الهدفالحالةملاحظات
RocksMQWoodpecker (MinIO/محلي)مدعوم
Woodpecker (MinIO/محلي)RocksMQمدعوم
وودبيكر MinIOWoodpecker محليغير مدعوميتطلب التبديل بين أوضاع تخزين Woodpecker معالجة إضافية للبيانات الوصفية، وهو ما لا يتم دعمه حتى الآن.
Woodpecker المحليوودبيكر MinIOغير مدعومكما هو مذكور أعلاه.
RocksMQ / WoodpeckerPulsar / Kafka خارجيمدعوم ولكن غير موصى بهاجعل المثيلات المستقلة بسيطة قدر الإمكان.