Skip to main content
يحتاج Ayakaleaf Pro إلى ما يلي:
  • MongoDB 8 على هيئة مجموعة نسخ متماثلة (replica set) (لأنه يستخدم المعاملات). تصمد ثلاثة أعضاء موزّعة على ثلاث عقد أمام فقدان عقدة واحدة؛ ويعمل أيضًا عضو واحد.
  • Redis 7، خادم واحد مع استمرارية AOF. يحتفظ Redis بالتعديلات التي لم تُكتب بعد إلى MongoDB، والجلسات، والرسائل بين خدمات Overleaf. يتصل Overleaf بخادم Redis واحد: لا يُدعم Sentinel ولا Redis Cluster.
يمكنك استخدام خدمات مُدارة بدلًا من ذلك، مثل MongoDB Atlas أو Redis الذي توفّره منصتك السحابية. تخطَّ هذه الصفحة واضبط OVERLEAF_MONGO_URL وOVERLEAF_REDIS_HOST عليها في الخطوة 4.
1

MongoDB

10-mongo.yaml
بعد بضع ثوانٍ، يجب أن يكون أحد الأعضاء PRIMARY والآخرون SECONDARY. يعيد الـ Job المحاولة إلى أن تستجيب كل الأعضاء، لذا من الطبيعي أن تفشل بعض الـ pods الخاصة بالـ Job.
  • تحتاج الـ Service من النوع headless إلى publishNotReadyAddresses: true: إذ يجب أن تعثر الأعضاء على بعضها بالاسم قبل أن توجد مجموعة النسخ المتماثلة.
  • تُضاف الأعضاء بأسمائها الثابتة (mongo-0.mongo.overleaf.svc.cluster.local)، وليس أبدًا بعناوين IP الخاصة بالـ pods، والتي تتغيّر عند كل إعادة تشغيل.
  • لعضو واحد، اضبط replicas: 1 وأبقِ mongo-0 فقط في الـ Job.
2

Redis

20-redis.yaml

أسئلة وأجوبة

الإجابة: يفشل MongoDB 8 على نواة Linux بالإصدار 6.19 وما بعده (SERVER-121912). أزل علامة التعليق عن متغيّر البيئة GLIBC_TUNABLES في 10-mongo.yaml.
الإجابة: افتراضيًا يستخدم MongoDB نصف ذاكرة العقدة ناقص 1 GB لذاكرته المؤقتة، وهو يرى ذاكرة العقدة، وليس حدّ الذاكرة الخاص بالـ pod. اضبط --wiredTigerCacheSizeGB بما يناسب العقد لديك؛ فقد أبقت القيمة 0.25 كل عضو عند نحو 200 إلى 260 MiB على عقد الاختبار لدينا ذات الـ 4 GB.
آخر تعديل في ٢ نوفمبر ٢٠٢٦