سؤال

أحاول معرفة كيفية نشر ملف أذن ضخم (40-50 ميجابايت) على الخادم من خلال اتصال VPN بطيء إلى حد ما. تحتوي الأذن على مشاريع EJB والحرب التي تم إنشاؤها في Glassfish ، و 90 ٪ من حجم الملف من مكتبات التبعية الخارجية المستخدمة.

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

  2. تتعلق بالنقطة الأولى ، كيفية فصل libs التبعية الخارجية عن المشروع في NetBeans ، بحيث يجمع المشروع على آلة التطوير ، ولكن عند إنشاء Ear/War/EJB ، فإنه لا يحتوي .

ربما نحتاج إلى كتابة نص ANT مخصص؟ ابدأ في استخدام Maven؟

شكرا لكم جميعا على الإجابات الرقيقة ،

بوزو

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

المحلول

إليكم السبب في أنها فكرة سيئة أن تنقل تبعياتك من الأذن وإلى دليل مشترك: من خلال الحفاظ على جميع التبعيات داخل الأذن ، يكون خادم التطبيق قادرًا على عدم النشر/إعادة النشر بشكل نظيف والذي يستخدمه الأذن واستعادة المساحة التي استخدمها داخل JVM كومة (من أجل Sun JVMs ، The Permgen). إذا قمت بنقل بعض التبعيات إلى مكتبة مشتركة ، فأنت تخاطر بأن هذه التبعيات ستحافظ على إشارة صعبة إلى بعض الكائنات المحددة داخل الأذن. هذا يعني أنه لا يمكن إزالة فصول الأذن ، وفي النهاية سيتعطل خادم التطبيق بعد نفاد مساحة بيرجن.

اقتراحي لـ SSH بناءً على افتراض أن "VPN" يعني Windows SMB ، الذي يحتوي على الكثير من الاتصالات المتخلفة عند نسخ الملفات. باستخدام SSH (أو بشكل صحيح بشكل صحيح ، SCP أو RSYNC) ، يمكنك استخدام النطاق الترددي الكامل للاتصال.

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

يتمثل البديل في معرفة ما إذا كان يتقدم تطبيق التطبيق الخاص بك يدعم "الأذنين المتفجرة"-إذا كانت الإجابة بنعم ، فأنت فقط قم بتحميل الجرار التي تغيرت.

نصائح أخرى

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

لماذا لا تقوم بنسخ الجرار المكتبية إلى/Glassfish تثبيت DIR/Glassfish/المجالات/المجال 1/lib ولا تحزمها في ملف أذنك؟

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