أنا أستكشف حالة استخدام بديلة لمكون الدردشة الإضافي الخاص بـ Discourse ولدي بعض الأسئلة حول حدود أدائه، لا سيما فيما يتعلق بالاحتفاظ بالبيانات والاستخدام المكثف لواجهات برمجة التطبيقات (APIs).
لتقديم بعض السياق، نحن نبحث عن نظام تعليقات متسلسل. توفر ميزة “الردود المتسلسلة” داخل مكون الدردشة الإضافي تجربة مستخدم أقرب بكثير لاحتياجاتنا من بنية الموضوع/المنشور القياسية. لهذا السبب، نفكر في استخدام قنوات الدردشة كسلاسل تعليقات دائمة.
بسبب حالة الاستخدام هذه، سنحتاج إلى الاحتفاظ بسجل الدردشة إلى أجل غير مسمى. هذا يؤدي إلى قلقنا الرئيسي: الأداء على نطاق واسع جدًا.
استخدامنا المتوقع مرتفع:
إجمالي الرسائل: ما بين 1 إلى 10 ملايين رسالة.
القنوات: ما يقرب من 150 إلى 200 قناة.
أسئلتنا الرئيسية هي:
هل من الممكن تعطيل الاحتفاظ بالدردشة تمامًا أو زيادته لدعم عدد الرسائل المذكور؟ على سبيل المثال، عن طريق تعيين فترة الاحتفاظ إلى 0 أو رقم كبير جدًا.
كيف سيتأثر أداء واجهة برمجة التطبيقات؟ نخطط لاستخدام واجهات برمجة تطبيقات مكون الدردشة الإضافي بشكل مكثف للتكامل مع نظامنا الخارجي. سيكون نمط الوصول الأساسي لدينا هو جلب الرسائل بترتيب زمني (من الأحدث إلى الأقدم) لكل من القنوات الرئيسية والسلاسل. هل سيؤدي هذا النوع من الاستقصاء المتكرر لواجهات برمجة التطبيقات على القنوات ذات السجلات الضخمة إلى إنشاء حمل كبير على الخادم؟
ما هو التأثير العام للأداء على الخادم وقاعدة البيانات لتخزين ملايين رسائل الدردشة بشكل دائم؟ على وجه التحديد، كيف سيؤثر ذلك على:
استخدام وحدة المعالجة المركزية (CPU) وذاكرة الوصول العشوائي (RAM) للخادم؟
الاستجابة العامة للموقع؟
هل هناك أي “نقاط انهيار” معروفة أو حدود ناعمة يبدأ عندها أداء النظام في التدهور بشكل كبير تحت هذا النوع من الحمل؟
نحن نتفهم أن هذا استخدام غير تقليدي لمكون الدردشة الإضافي وأن تعطيل الاحتفاظ ليس من أفضل الممارسات. هدفنا هو تحديد الحدود المعمارية للنظام - سواء في واجهة المستخدم أو عبر واجهة برمجة التطبيقات - قبل الالتزام بهذا النهج.
ستكون أي رؤى من الفريق أو أعضاء المجتمع الذين قاموا بتشغيل الدردشة على نطاق واسع قيّمة للغاية.
مرحباً @Nima1، يمكنني البدء في الإجابة على بعض هذه الأسئلة:
هل من الممكن تعطيل الاحتفاظ بالمحادثة بالكامل أو زيادته لدعم عدد الرسائل المذكور؟ على سبيل المثال، عن طريق تعيين فترة الاحتفاظ إلى 0 أو رقم كبير جدًا.
نعم، هذا ممكن. يمكنك تعيين chat channel retention days إلى “0” للاحتفاظ بالرسائل إلى الأبد - ولكن بالنظر إلى حجم ما تفعله، فأنت على حق في التساؤل عن تأثيرات الأداء. سأشير أيضًا إلى أننا لا ندعم حاليًا البحث في رسائل المحادثة (هذا في أذهاننا ولكنه غير مخطط له حاليًا). هذا يعني أنه حتى لو كنت تحتفظ بالرسائل إلى الأبد، بالنظر إلى الاستخدام العالي لمشروعك، فقد لا يكون من الممكن للأعضاء العثور على رسائل محددة.
كيف سيؤثر أداء واجهة برمجة التطبيقات (API)؟
ما هو التأثير العام على الأداء؟
هل هناك أي “نقاط انهيار” معروفة أو حدود ناعمة حيث يبدأ أداء النظام في التدهور بشكل كبير تحت هذا النوع من الحمل؟
لست متأكدًا من الإجابات على هذه الأسئلة، دعني أتحقق مع بعض المهندسين الذين عملوا على المحادثة بشكل أكبر لمعرفة ما يعتقدونه.
أود أيضًا أن أتعرف على حالة الاستخدام الخاصة بك - هل ستكون على استعداد لمشاركة المزيد من التفاصيل حول ما تعمل على تحقيقه؟
شكراً على الرد وعلى التحقق مع فريق الهندسة. يسعدني أن أشارك المزيد حول حالة الاستخدام الخاصة بنا.
نحن نبني مجتمعاً لعشاق العملات المشفرة. لكل أصل تشفير رئيسي، نريد إنشاء قناة مخصصة ودائمة للمناقشة في الوقت الفعلي.
وجدنا أن نموذج الموضوع/المنشور القياسي ليس مثالياً لهذا السبب:
السرعة والتنسيق: المحادثات سريعة وتتكون من رسائل قصيرة وتحديثات وردود فعل، وهو ما يناسب طبيعة الدردشة.
تدفق المعلومات: يحتاج المستخدمون لدينا إلى رؤية أحدث الرسائل أولاً والتمرير لأعلى للحصول على السجل الحديث، وهو السلوك الافتراضي في الدردشة. في المقابل، تم تصميم المواضيع ليتم قراءتها بترتيب زمني من الأقدم إلى الأحدث.
إن الردود المتسلسلة لعناصر الدردشة وعرضها بترتيب زمني عكسي يتناسب تماماً مع تجربة المستخدم التي نريد إنشاؤها.
تحدينا الرئيسي هو الحجم. نظرًا لأننا سنمتلك قناة لكل أصل، نتوقع أن نحتاج إلى مئات القنوات، كل منها قد يحمل سجلاً طويلاً جدًا. لهذا السبب نحن مهتمون جدًا بحدود الأداء.
نحن ملتزمون باستخدام Discourse بسبب ميزاته القوية في الإشراف وإدارة المستخدمين وتحفيزهم، وهي أمور بالغة الأهمية لبناء مجتمع صحي.
أتطلع إلى سماع ما يعتقده المهندسون. شكراً مرة أخرى!
شكراً لمشاركتك المزيد حول ما تأمل في القيام به، @Nima1!
بعد التحدث مع فريقنا، أخشى أننا لا نستطيع التحدث بيقين عن كيفية تأثر الأداء بهذا الحجم من الرسائل - ليس لدينا الكثير من الأشخاص الذين يستخدمون الدردشة حاليًا بهذا الحجم، وسيكون لمكان استضافتك لموقعك تأثير كبير.