logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo
وضع التكتل
نظرة عامة
التحضير
نشر Kubernetes
عملية التشغيل
تقسيم الخدمات
مرجع التطوير
Previous Pageنظرة عامة
Next Pageنشر Kubernetes
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#المتطلبات الأساسية

قبل نشر تطبيق NocoBase في وضع التجمع (الكلستر)، يجب إكمال المتطلبات الأساسية التالية.

#ترخيص الإضافات التجارية

يتطلب تشغيل تطبيق NocoBase في وضع التجمع دعم الإضافات التالية:

الوظيفةالإضافة
محول التخزين المؤقتمدمج
محول إشارة المزامنة@nocobase/plugin-pubsub-adapter-redis
محول قائمة انتظار الرسائل@nocobase/plugin-queue-adapter-redis أو @nocobase/plugin-queue-adapter-rabbitmq
محول القفل الموزع@nocobase/plugin-lock-adapter-redis
مخصص معرّف العامل (Worker ID)@nocobase/plugin-workerid-allocator-redis

أولاً، يرجى التأكد من حصولك على تراخيص الإضافات المذكورة أعلاه (يمكنك شراء تراخيص الإضافات المناسبة عبر منصة خدمات الإضافات التجارية).

#مكونات النظام

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

#قاعدة البيانات

نظرًا لأن وضع التجمع الحالي يستهدف مثيلات التطبيق فقط، فإن قاعدة البيانات تدعم مؤقتًا عقدة واحدة فقط. إذا كان لديك بنية قاعدة بيانات مثل رئيسي-فرعي (master-slave)، فستحتاج إلى تنفيذها بنفسك عبر برمجيات وسيطة والتأكد من أنها شفافة لتطبيق NocoBase.

#البرمجيات الوسيطة (Middleware)

يعتمد وضع التجمع في NocoBase على بعض البرمجيات الوسيطة لتحقيق الاتصال والتنسيق بين التجمعات، وتشمل:

  • التخزين المؤقت (Cache): يستخدم برمجيات وسيطة للتخزين المؤقت الموزع تعتمد على Redis لتحسين سرعة الوصول إلى البيانات.
  • إشارة المزامنة (Sync signal): يستخدم ميزة stream في Redis لتحقيق نقل إشارات المزامنة بين التجمعات.
  • قائمة انتظار الرسائل (Message queue): يستخدم برمجيات وسيطة لقائمة انتظار الرسائل تعتمد على Redis أو RabbitMQ لمعالجة الرسائل غير المتزامنة.
  • القفل الموزع (Distributed lock): يستخدم قفلًا موزعًا يعتمد على Redis لضمان أمان الوصول إلى الموارد المشتركة في التجمع.

عندما تستخدم جميع مكونات البرمجيات الوسيطة Redis، يمكنك تشغيل خدمة Redis واحدة ضمن الشبكة الداخلية للتجمع (أو Kubernetes). بدلاً من ذلك، يمكنك تمكين خدمة Redis منفصلة لكل وظيفة (التخزين المؤقت، إشارة المزامنة، قائمة انتظار الرسائل، والقفل الموزع).

توصيات الإصدارات

  • Redis: >=8.0 أو إصدار redis-stack الذي يتضمن ميزة Bloom Filter.
  • RabbitMQ: >=4.0

#التخزين المشترك

يحتاج NocoBase إلى استخدام دليل storage لتخزين الملفات المتعلقة بالنظام. في وضع العقد المتعددة، يجب عليك تحميل قرص سحابي (أو NFS) لدعم الوصول المشترك عبر العقد المتعددة. وإلا، فلن تتم مزامنة التخزين المحلي تلقائيًا، ولن يعمل بشكل صحيح.

عند النشر باستخدام Kubernetes، يرجى الرجوع إلى قسم نشر Kubernetes: التخزين المشترك.

#موازنة التحميل

يتطلب وضع التجمع موازن تحميل لتوزيع الطلبات، بالإضافة إلى فحوصات السلامة لمثيلات التطبيق وتجاوز الفشل. يجب اختيار هذا الجزء وتكوينه وفقًا لاحتياجات التشغيل الخاصة بالفريق.

على سبيل المثال، عند استخدام Nginx مستضاف ذاتيًا، أضف المحتوى التالي إلى ملف التكوين:

upstream myapp {
    # ip_hash; # يمكن استخدامه للحفاظ على الجلسة. عند التمكين، يتم دائمًا إرسال الطلبات من نفس العميل إلى نفس خادم الواجهة الخلفية.
    server 172.31.0.1:13000; # العقدة الداخلية 1
    server 172.31.0.2:13000; # العقدة الداخلية 2
    server 172.31.0.3:13000; # العقدة الداخلية 3
}

server {
    listen 80;

    location / {
        # استخدم الـ upstream المعرف لموازنة التحميل
        proxy_pass http://myapp;
        # ... إعدادات أخرى
    }
}

هذا يعني أن الطلبات يتم توجيهها عكسيًا وتوزيعها على عقد الخادم المختلفة للمعالجة.

بالنسبة لبرمجيات موازنة التحميل الوسيطة التي يقدمها موفرو الخدمات السحابية الآخرون، يرجى الرجوع إلى وثائق التكوين المقدمة من الموفر المحدد.

#إعداد متغيرات البيئة

يجب أن تستخدم جميع العقد في التجمع نفس إعدادات متغيرات البيئة. بالإضافة إلى متغيرات البيئة الأساسية في NocoBase، يجب أيضًا تكوين متغيرات البيئة التالية المتعلقة بالبرمجيات الوسيطة.

#وضع النوى المتعددة

عند تشغيل التطبيق على عقدة متعددة النوى، يمكنك تمكين وضع النوى المتعددة للعقدة:

# تمكين وضع النوى المتعددة لـ PM2
# CLUSTER_MODE=max # غير مفعل افتراضيًا، يتطلب تكوينًا يدويًا

إذا كنت تقوم بنشر pods التطبيق في Kubernetes، يمكنك تجاهل هذا التكوين والتحكم في عدد مثيلات التطبيق من خلال عدد نسخ الـ pod.

#التخزين المؤقت

# محول التخزين المؤقت، في وضع التجمع يجب تعيينه إلى redis (افتراضيًا يكون ذاكرة إذا لم يتم تعيينه)
CACHE_DEFAULT_STORE=redis

# عنوان اتصال محول التخزين المؤقت Redis، يجب تعبئته
CACHE_REDIS_URL=

#إشارة المزامنة

# عنوان اتصال محول المزامنة Redis، الافتراضي هو redis://localhost:6379/0 إذا لم يتم تعيينه
PUBSUB_ADAPTER_REDIS_URL=

#القفل الموزع

# محول القفل، في وضع التجمع يجب تعيينه إلى redis (افتراضيًا يكون قفلًا محليًا في الذاكرة إذا لم يتم تعيينه)
LOCK_ADAPTER_DEFAULT=redis

# عنوان اتصال محول القفل Redis، الافتراضي هو redis://localhost:6379/0 إذا لم يتم تعيينه
LOCK_ADAPTER_REDIS_URL=

#قائمة انتظار الرسائل

# تمكين Redis كمحول لقائمة انتظار الرسائل، الافتراضي هو محول ذاكرة إذا لم يتم تعيينه
QUEUE_ADAPTER=redis
# عنوان اتصال محول قائمة انتظار الرسائل Redis، الافتراضي هو redis://localhost:6379/0 إذا لم يتم تعيينه
QUEUE_ADAPTER_REDIS_URL=

#مخصص معرّف العامل (Worker ID)

نظرًا لأن بعض مجموعات النظام في NocoBase تستخدم معرفات فريدة عالميًا كمفاتيح أساسية، فمن الضروري استخدام مخصص معرّف العامل (Worker ID Allocator) لضمان تخصيص معرّف عامل فريد لكل مثيل تطبيق في التجمع، وبالتالي تجنب مشكلات تعارض المفاتيح الأساسية. النطاق الحالي لمعرّف العامل (Worker ID) المصمم هو 0-31، مما يعني أن التطبيق نفسه يدعم تشغيل ما يصل إلى 32 عقدة في وقت واحد. لمزيد من التفاصيل حول تصميم المعرّف الفريد العالمي، راجع @nocobase/snowflake-id.

# عنوان اتصال Redis لمخصص معرّف العامل (Worker ID Allocator).
# إذا تم حذفه، سيتم تعيين معرّف عامل عشوائي.
REDIS_URL=
تلميح

عادةً، يمكن لجميع المحولات ذات الصلة استخدام نفس مثيل Redis، ولكن من الأفضل استخدام قواعد بيانات مختلفة لتجنب مشكلات تعارض المفاتيح المحتملة، على سبيل المثال:

CACHE_REDIS_URL=redis://localhost:6379/0
PUBSUB_ADAPTER_REDIS_URL=redis://localhost:6379/1
LOCK_ADAPTER_REDIS_URL=redis://localhost:6379/2
QUEUE_ADAPTER_REDIS_URL=redis://localhost:6379/3
REDIS_URL=redis://localhost:6379/4

حاليًا، تستخدم كل إضافة متغيرات البيئة الخاصة بها المتعلقة بـ Redis. في المستقبل، قد نفكر في توحيد استخدام REDIS_URL كتكوين احتياطي.

إذا كنت تستخدم Kubernetes لإدارة التجمع، يمكنك تكوين متغيرات البيئة المذكورة أعلاه في ConfigMap أو Secret. لمزيد من المحتوى ذي الصلة، يمكنك الرجوع إلى نشر Kubernetes.

بعد اكتمال جميع المتطلبات الأساسية المذكورة أعلاه، يمكنك الانتقال إلى عمليات التشغيل لمتابعة إدارة مثيلات التطبيق.