سؤال

أنا على وشك نشر العديد من تطبيقات Grails فوق خادم Tomcat واحد ، ولدي الشكوك التالية:

  1. من حيث استخدام الذاكرة: هل يحدث فرقًا لوضع LIBs المشتركة تحت المشاركة/lib بدلاً من وضعها في ملفات حرب كل تطبيق؟ هل هناك قائمة بهذه الجرار؟
  2. إذا كان الأمر كذلك ، هل هناك آلية لعدم حزم تلك الجرار في ملف الحرب لبيئة "الإنتاج"؟ أنا أستخدم NetBeans 6.7.
  3. أنا على وشك استخدام Tomcat 5.5 ؛ هل هناك أي تجارب توصي باستخدام 6.0 بدلاً من ذلك؟

شكرًا

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

المحلول

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

أعتقد أيضًا أن Tomcat يقوم بتحميل مثيل للفئة لكل تطبيق حتى لا تنقذ الذاكرة باستخدامه كفئة شائعة.

أنظر أيضا:

هل يقوم Tomcat بتحميل نفس ملف المكتبة في الذاكرة مرتين إذا كانت في تطبيقين على الويب؟

نصائح أخرى

1) قد يؤدي وضع الجرار في المشاركة/lib أو مشتركة/lib إلى تقليل كمية الذاكرة المطلوبة في بيرجن. IMHO أكبر ميزة هي أن تحميل ملف الحرب أسرع بكثير. ولكن ضع في اعتبارك ، ما قاله Tripwird ، تربط الجرار جميع التطبيقات المنشورة لنفس إصدار Grails. تصبح الترقية لعبة "لا شيء أو".

2) إذا كنت تستخدم

grails prod war --nojars

ثم يتم استبعاد جميع ملفات جرة من الحرب.

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