ما مدى نجاح WCF في توسيع نطاقه ليشمل عددًا كبيرًا من مستخدمي العملاء؟

StackOverflow https://stackoverflow.com/questions/43823

  •  09-06-2019
  •  | 
  •  

سؤال

هل لدى أي شخص أي خبرة في كيفية توسيع نطاق خدمات الويب التي يتم إنشاؤها باستخدام WCF من Microsoft إلى عدد كبير من المستخدمين؟

المستوى الذي أفكر فيه هو في المنطقة التي تضم أكثر من 1000 مستخدم عميل يتصلون بمجموعة من خدمات WCF التي توفر منطق الأعمال لتطبيقنا، ويتحدث هؤلاء إلى قاعدة بيانات - على غرار البنية التقليدية ثلاثية الطبقات.

هل هناك أي مشكلات معينة أدت إلى تباطؤ الأداء، أو أي دروس تصميمية مستفادة مكنت من تحقيق هذا المستوى من قابلية التوسع؟

هل كانت مفيدة؟

المحلول

للتأكد من أن تطبيق WCF الخاص بك يمكن أن يصل إلى المستوى المطلوب، أعتقد أنك قد تحتاج إلى تعديل تفكيرك بشأن الإحصائيات التي يجب أن تلبيها خدماتك.

لقد ذكرت خدمة "أكثر من 1000 عميل مستخدم" ولكن لقياس ما إذا كانت خدماتك يمكن أن تؤدي هذا المستوى، ستحتاج أيضًا إلى بعض أرقام الاستخدام المقدرة، والتي ستساعدك على حساب بعض الإحصائيات الأبسط مثل عدد الطلبات في الثانية لتطبيقك يحتاج إلى التعامل معها.

بعد الانتهاء للتو من العمل في مشروع WCF، تمكنا من الحصول على 400 طلب في الثانية على جهاز الاختبار الخاص بنا، والذي يشير إلى نمط الاستخدام المتوقع لكل مستخدم يقدم 300 طلب يوميًا إلى أنه يمكننا التعامل مع متوسط ​​100000 مستخدم يوميًا (بافتراض وجود رسم بياني للاستخدام المسطح على مدار اليوم).

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

نصائح أخرى

ربما تكون أهم 4 أشياء يمكنك البدء في النظر إليها أولاً (إلى جانب وجود رمز خدمة جيد فقط) هي العناصر المتعلقة بـ:

  • الارتباطات - بعض الارتباطات والبروتوكولات التي تعمل عليها تكون أسرع من غيرها، وسيكون TCP أسرع من أي من روابط http
  • وضع المثيل - يحدد هذا كيفية تخصيص فصولك الدراسية مقابل المتصلين بالجلسة
  • عمليات ذات اتجاه واحد وثنائية - إذا لم تكن هناك حاجة إلى الرد على العميل، فقم بذلك في اتجاه واحد
  • خانق - الحد الأقصى للجلسات/المكالمات والمثيلات المتزامنة

لقد قاموا بتصميم WCF ليكون آمنًا بشكل افتراضي، لذا فإن الإعدادات الافتراضية محدودة للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top