Server-tools: [RFC] خدمة المنحى Odoo

تم إنشاؤها على ٨ يونيو ٢٠١٧  ·  7تعليقات  ·  مصدر: OCA/server-tools

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

في تجربتي الصغيرة قبل إنشاء RFC - كنت قادرًا على DoS مثيل تطبيق موقع الويب ، لكن مثيل الويب كان يتأرجح مثل البطل. هذا يخلق عزلًا ماديًا بين طبقات التطبيق لدينا ، ويمكن أن يعزل النقاط المائلة المحتملة.

سيبدو شيئًا من هذا القبيل (آسف للأشياء الإضافية ، هذا مخصص لشيء أكبر - الجزء ذو الصلة هو الجزء السفلي):

soa odoo

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

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

ربما أفتقد بعض الأشياء هنا ، لذلك سيكون هذا مستندًا مباشرًا. سأكون مهتمًا بمعرفة ما إذا كان أي شخص آخر قد فعل أي شيء مشابه لهذا.

خطوات العمل:

  • [] وحدة لتعطيل المهام المجدولة مع متغير البيئة
question

التعليق الأكثر فائدة

lasleydreispt أعلمك أو أذكرك أيضًا بوجود علاقات عامة ونماذج أولية أخرى حول نموذج جلسة Odoo القابل للتطوير المستند إلى Redis:
https://github.com/odoo/odoo/pull/12515

سأكون سعيدًا جدًا لأن هذه الميزة حية ويتم الحفاظ على OCA في مكان ما ...

ال 7 كومينتر

إذا كنت تقصد ir.cron بواسطة "المهام المجدولة" ، فإن تعطيلها ممكن بالفعل (على الأقل في وضع العمال ، لم أقم بالتحقق من الوضع المترابط) في ملف تكوين Odoo: max_cron_threads = 0 .
(تحرير: بالنظر إلى الكود ، يبدو أنه يعمل في كل من أوضاع العمال والوضع المترابط)

تم تصميم خادم تطبيق AFAIK Odoo ليكون قادرًا على التوسع عن طريق إضافة المزيد من العاملين أو المزيد من خوادم التطبيقات جنبًا إلى جنب.
القيد هو أنه يجب عليهم مشاركة نفس خادم الملفات (لبيانات الجلسة والمرفقات) وخادم db.
ويمكنك إعداد موازنة التحميل بحيث ينتقل طلب عميل الويب إلى مجموعة من خوادم التطبيقات وطلبات مواقع الويب إلى مجموعة أخرى من خوادم التطبيقات.

إذا لم تكن لديك مشكلة في الشرطين ، فإن AFAICS لديك كل شيء خارج الصندوق.

نعم ، كنت سأقول بالضبط ما قاله @ sylvain-garancher و @ dreispt للتو: كل شيء موجود بالفعل ، ولا يزال من عصر ما قبل عامل الإرساء.

إذا كنت تشارك نفس الصورة الأساسية بين مثيلات الواجهة الخلفية والواجهة الأمامية ، فيمكنك فقط تشغيل واجهات الواجهة الأمامية بإضافة --max-cron-threads=0 إلى أمر التمهيد.

وآمل أن قريبا INFINIT يضرب 1.0 ويجعل FILESTORE تقاسم أسهل بكثير.

الصيحة شكرًا @ sylvain-garancher ، dreispt ، Yajo - أنت بالتأكيد على حق - هذا يعمل خارج الصندوق الرائع! أنا ❤️ أودو

آمل أن تصل Infinit إلى 1.0 قريبًا وتجعل مشاركة الملفات أسهل بكثير.

هل بحثت في GlusterFS؟ هذا هو النهج الموصى به من قبل ريد هات

lasleydreispt أعلمك أو أذكرك أيضًا بوجود علاقات عامة ونماذج أولية أخرى حول نموذج جلسة Odoo القابل للتطوير المستند إلى Redis:
https://github.com/odoo/odoo/pull/12515

سأكون سعيدًا جدًا لأن هذه الميزة حية ويتم الحفاظ على OCA في مكان ما ...

نعم @ Lasley لقد نظرت بالفعل إلى GlusterFS. في الواقع أفضل حل للإنتاج اعتبارًا من اليوم ، لكنني ما زلت أبقي العين مغلقة بالنسبة إلى Infinit نظرًا لأنه يبدو أن لديها تصميمًا أفضل ومكوِّنًا إضافيًا لحجم Docker (تم شراؤها بواسطة Docker لسبب ما ...).

Yajo Ohhhhhh هذا لطيف - سأضطر إلى

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات