تداعيات التوسع على تحويل حبوب الجلسة عديمة الجنسية إلى بوجوس

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

سؤال

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

إذا قمت بتحويل SLSB هذا إلى Singleton Pojo الأصلي (على سبيل المثال ، باستخدام إطار عمل DI) ، كيف سيؤثر ذلك على قابلية التوسع في التطبيق؟ عندما كانت الخدمة عبارة عن SLSB ، ستقوم حاوية EJB بإدارة مجموعة من الحالات التي سيحصل منها كل عميل على نسختها الخاصة ، لذلك أتساءل عما إذا كان تحويلها إلى Singleton Pojo ستقدم نوعًا من المنافسة لهذا الحالة الفردية.

FWIW ، لا توجد أساليب هذه الخدمة synchronized.

التوضيح: دافعي لتحويل SLSB إلى pojo هو بساطة كل من دورة حياة الكائن (Singleton True مقابل إدارتها الحاويات) والرمز نفسه (واجهة واحدة و POJO المشروح ، مقابل ثلاث واجهات ، وفئة واحدة ، ولفقة واحدة من XML في ejb-jar.xml).

أيضًا ، FWIW ، الخدمة المعنية هي مكون واحد لتطبيق ويب متجانس يعمل على JBOSS 3.x.

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

المحلول

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

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

باستخدام Pojo فقط ، يمكنك أيضًا رؤية ما يجري في تطبيقك ، ويمكن أن يكون متأكدًا من عدم وجود "حاوية سحر" خفية خلف الكواليس.

نصائح أخرى

يبدو Pojo الخاص بك مثاليًا.

لذلك لا ، لن يكون هناك خلاف ، ستكون قابلية التوسع مثالية.

  • ليس لديك تكلفة إضافية.
  • لديك حتى أقل لأن لديك مثيل واحد بدلاً من عدة
  • قابلية التوسع الخاصة بك أفضل لأنك لن تصل أبدًا إلى الحد الأقصى لتجمعك (ليس لديك).
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top