اذهب إلى المحتوى

السؤال

نشر

السلام عليكم.. 

 

لدي محتوى عبارة عن فيديو او صوت مخزن في Google cloud storage، لكي اقوم بجلب الملف للموقع اقوم بعمل stream في ال backend للكلاود من خلال Signed url، واقوم بجلب فقط 1MB من الملف سواء كان مقطع او صوت، ثم اقوم بنقلها الى ال frontend.. 

 

ببساطة اقوم بعمل stream نفس فكرة مقاطع اليوتيوب، لكن انا قلق انه من الممكن ان يؤثر عمل stream للملف من خلال ال backend الخاص بي، مع الاخذ بالحسبان ان ال stream يتم عن طريق route واحد فقط اسمه audio/ يقوم بعمل stream لملفات الصوت.. 

 

اذا كان هناك مئات المستخدمين يقومون بالاستماع للصوت في نفس الوقت او اوقات مختلفة هل هذا سيؤثر على عمل ال backend؟ وماذا تنصحون افعل ان كان هناك اي تعديلات استطيع فعلها.

 

شكراً

Recommended Posts

  • 0
نشر

في حال أنك تقوم بعمل stream مرة واحدة و تجلب البيانات على دفعات فلا مشكلة في ذلك. أما في حال كنت تفتح ال stream في كل مرة و تقوم بأخذ بيانات منه فهذا سيشكل عبء ﻷن عملية فتح ال stream في كل مرة ستكون بطيئة.

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

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

  • 0
نشر

الأمر يعتمد دائمًا على الخوارزمية والهيكلة المتبعة للواجهة الخلفية، فقد يؤثر ذلك على الأداء أولا يؤثر.

وللتقليل من أثر الـ streaming على الـ backend، عليك باتباع بعض الإرشادات والتعديلات:

  • آليات التخزين المؤقت لتخزين المحتوى المسترجع من Google Cloud Storage في الـ backend، وذلك يساعد في تجنب استعلامات متكررة للـ Cloud Storage ويقلل من الحمل على الخادم.
  • استخدم CDN (شبكة توصيل المحتوى) لتسليم المحتوى إلى المستخدمين، وسيساعد ذلك في تقليل عبء العمل على ال backend عن طريق جلب المحتوى من خوادم قريبة من المستخدمين.
  • استخدام خوادم وكيل (Reverse Proxy) للتعامل مع طلبات الـ streaming وتحويلها إلى الـ backend، وخوادم الوكيل قادرة على إدارة عمليات الـ streaming بكفاءة وتحمي الـ backend من الأحمال الزائدة.
  • استخدام حلول(Load Balancer) لتوزيع الحمولة بين مجموعة من الخوادم الخلفية (backend)، وبالتالي تحسين استجابة الـ streaming عند وجود أعداد كبيرة من المستخدمين.
  • التأكد من أن الكود المستخدم في الـ backend محسن وفعال من حيث استخدام الموارد والاستجابة.
  • استخدام تقنيات التنقيح (Profiling)، وقم بتحليل أداء الـ backend باستخدام تلك التقنيات للتعرف على أي مشاكل أداء وحلها.
  • وإن كانت البيانات المستخدمة في الـ streaming مخزنة في قاعدة بيانات، فمن من المفيد تحسين أداء قاعدة البيانات والاستعلامات المستخدمة.
  • استخدم تقنية ضغط المحتوى لتقليل حجم المحتوى الذي يتم نقله إلى المستخدمين، وبالتالي تقليل عبء العمل على الشبكة وتحسين سرعة التحميل.
  • 0
نشر

عندما يتعلق الأمر بعملية الـ streaming للملفات الصوتية أو الفيديو، عدد المستخدمين المتزامنين ووقت الاستجابة للطلبات يمكن أن يؤثران على أداء الـ backend الخاص بك. إليك بعض النصائح التي يمكن أن تساعدك في تحسين الأداء وتجنب أي مشاكل محتملة:

يمكنك استخدام خدمات Live Streaming: إذا كنت ترغب في تقديم بث مباشر مثل البث المباشر للفعاليات أو الفيديوهات التفاعلية، يمكنك النظر في استخدام خدمات الـ live streaming. توفر هذه الخدمات البنية التحتية للبث المباشر وتعزز الأداء وتوفر سهولة الاستخدام. بعض الخدمات المشهورة في هذا المجال هي YouTube Live و Vimeo Live و Twitch.

كما يوجد خدمات Content Delivery Network (CDN): تُساعد خدمات CDN في تسريع توصيل المحتوى إلى المستخدمين من خلال استخدام شبكة موزعة جغرافيًا من الخوادم. تعمل هذه الخدمات على تخزين المحتوى الثابت مثل ملفات الصوت والفيديو في الخوادم الموزعة لتقديمها بشكل أسرع للمستخدمين في مواقعهم الجغرافية. بعض الخدمات المعروفة هي Amazon CloudFront و Cloudflare و Fastly.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...