أدوار عامل Windows Azure: وظيفة واحدة كبيرة أو العديد من الوظائف الصغيرة؟

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

  •  03-10-2019
  •  | 
  •  

سؤال

هل هناك أي ميزة متأصلة عند استخدام العديد من العمال لمعالجة أجزاء من التعليمات البرمجية الإجرائية مقابل معالجة الحمل بأكمله؟

بمعنى آخر ، إذا كان سير العمل الخاص بي يشبه هذا:

  1. احصل على عمل من Queue0 وافعل أ
  2. ينتج عن المتجر من Queue1
  3. احصل على نتيجة من قائمة الانتظار 1 وافعل ب
  4. المتجر الناتج عن B في Queue2
  5. احصل على نتيجة من Queue2 وافعل C

هل هناك ميزة متأصلة لاستخدام 3 عمال يقومون بالعملية بأكملها أنفسهم مقابل 3 عمال يقوم كل منهم بعمل جزء من العمل (العامل 1 يفعل 1 و 2 ، العامل 2 يفعل 3 و 4 ، العامل 3 يفعل 5).

إذا كنا نهتم فقط بالعمل (انتهى بالخطوة 5) ، فيبدو أنه يقيس بنفس الطريقة (بمجرد استخدام ما لا يقل عن 3 عمال). ربما تكون الوظيفة الكبيرة أفضل لأن العمال الذين لديهم هذا الإعداد لديهم مشاكل أقل عنق الزجاجة؟

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

المحلول

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

تخصيص كيفية تقسيم العمل إلى أجزاء أصغر ، هناك سؤال حول ما إذا كان يجب أن يكون هناك أدوار متعددة العمال ، كل منها يمكن أن يقوم فقط بعمل واحد من العمل ، أو دور عامل واحد (ولكن العديد من الحالات) يمكن أن يفعل كل شيء. أود الافتراضي إلى الأخير (الرمز الذي يمكنه فعل كل شيء ويتحقق فقط من جميع قوائم الانتظار لمعرفة ما يجب القيام به) ، ولكن هناك أسباب للذهاب مع السابق. إذا كنت بحاجة إلى مزيد من ذاكرة الوصول العشوائي لنوع واحد من العمل ، على سبيل المثال ، يمكنك استخدام حجم VM أكبر لهذا العامل. مثال آخر هو إذا أردت توسيع نطاق الأنواع المختلفة من العمل بشكل مستقل.

نصائح أخرى

إضافة إلى ما يقوله smarx:

  • نموذج العامل "متعدد الأغراض" هو بالطبع أكثر عمومية. لذلك حتى لو كنت بحاجة إلى أنواع متخصصة (مثل مثال ذاكرة الوصول العشوائي الإضافية المستخدمة أعلاه) ، سيكون لديك ببساطة مهمة واحدة في هذا الدور بالذات.

  • هناك منظور إضافي للتكلفة. سيكون لديك حافز اقتصادي لزيادة "كثافة المهمة" (كما في المهام/مثيل). اذا كنت تمتلك م أنواع العمل وتعين كل واحد لعامل مختلف ، ثم ستدفع مقابل م الحالات ، حتى لو كان بعض هؤلاء قد يقومون ببعض الأعمال فقط كل مرة.

أنا مدون حول هذا منذ بعض الوقت وهو موضوع واحد من يرشد (الفصل "06 week3.docx")

تستخدم العديد من الأطر والعينات (بما في ذلك) هذا النهج.

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