SORU
28 EKİM 2009, ÇARŞAMBA


En az kapalı kalma ile Java web uygulamalarını dağıtmak için en iyi yöntemler?

Büyük bir Java Web uygulaması (>dağıtırken 100 MB .savaş) şu anda ben aşağıdaki dağıtım süreci:

  • Uygulama .savaş dosya yerel geliştirme makinede genişletilir.
  • Genişletilmiş uygulama rsync:yaşadığımız çevreyi geliştirme makineden ed.
  • Canlı ortamında uygulama sunucusunu rsync sonra yeniden başlatılır. Bu adım, kesinlikle gerekli değildir, ama dağıtım uygulama sunucusu yeniden kaçınan buldum "java.lang.OutOfMemoryError: uzay" sık sınıf yükleme nedeniyle. PermGen

Bu yaklaşım hakkında güzel şeyler:

  • Rsync veri yaşadığımız çevreyi geliştirme makine tarafından gönderilen miktarını en aza indirir. Yükleme tamamı .savaş dosyası rsync bir kaç saniye alır, oysa on dakika sürer.

Bu yaklaşım hakkında kötü şeyler:

  • Rsync çalışırken uygulama kapsamında dosyaları güncellendiği için yeniden başlatılır. Hala çalışıyorsa, yeniden başlatma rsync tamamlandıktan sonra olması gereken ideal değil.
  • Uygulama sunucu kesintilerini yaklaşık iki dakika neden yeniden başlatın.

Aşağıdaki özelliklere sahip bir dağıtım süreci bulmak istiyorum:

  • Dağıtım işlemi sırasında en az bir arıza.
  • Az zaman verileri karşıya geçirdi.
  • Eğer dağıtım işlemi uygulama sunucusu belirli ise, o zaman uygulama sunucusu açık kaynak olmalıdır.

Soru:

  • Belirtilen şartları verilen optimum kurulum süreci nedir?

CEVAP
28 EKİM 2009, ÇARŞAMBA


Güncelleme:

Bu cevap ilk yazıldığından bu yana, savaş dosyalar sıfır kesinti ile tomcat dağıtmak için daha iyi bir yol ortaya çıkmıştır. Tomcat son sürümlerinde savaş dosya sürüm numaralarını ekleyebilirsiniz. Yani, örneğin, dosyaları ROOT##001.war ve aynı içerik için ROOT##002.war Aynı anda dağıtabilirsiniz. ## sonra her şeyi tomcat ve bağlam yolunun bir parçası değil sürüm numarası olarak yorumlanır. Tomcat uygulaması tüm sürümleri çalışmasını sağlamak ve incelikle başladılar sürümü eski istekleri ve oturumları tamamlarken, tamamen bu yeni sürümü için yeni talepler ve seans hizmet verecek. Belirterek sürüm numaralarını da tomcat yöneticisi ve hatta catalina karınca görevleri ile yapılabilir. Daha fazla bilgi here.

Orijinal Cevabı:

Rsync delta-transfer algoritması dosya ve küçük bir değişiklik, değişiklik için sıkıştırılmamış bir dosya görünüyor beri sıkıştırılmış dosyalar üzerinde etkisiz olma eğilimindedir, büyük ölçüde sonuç sıkıştırılmış halini değiştirebilir. Bu nedenle, eğer ağ bant genişliği bir darboğaz olduğu kanıtlanırsa sıkıştırılmamış bir savaş rsync iyi anlamda sıkıştırılmış bir sürümü yerine, dosya yapabilir.

Tomcat manager uygulama dağıtımlarını yapmak için kullanmanın ne zararı var? Eğer istemiyorsan yüklemek tüm savaş dosya doğrudan Tomcat manager uygulamasından uzak bir yerden, elinden rsync (sıkıştırılmamış nedenleri yukarıda) için bir tutucu konumu üzerinde üretim kutusu, yeniden paketlemek için bir savaş, ve sonra el için yöneticisi yerel olarak. Tomcat, script kurulumları Tomcat manager uygulamasını kullanarak için izin ile birlikte gelen güzel bir karınca bir görev var.

Orada bir ek kusur senin yaklaşım olmadığını söyledim: Süre uygulamanız kısmen dağıtılan (sırasında bir rsync işlemi), uygulama olabilir tutarsız bir devlet nerede değişti arabirimleri olmayabilir sync, yeni/güncelleştirilmiş bağımlılıkları olabilir kullanılamaz, vb. Ayrıca, rsync işin ne kadar süreceğine bağlı. uygulama aslında birden çok kez yeniden başlatılabilir. Ve Tomcat dinleme--değişti-dosyaları-ve-yeniden davranışı kapatabilirsiniz gerektiğini biliyor musunuz? Aslında üretim sistemleri için tavsiye edilmez. Her zaman elle ya da bir karınca uygulamanızın yeniden Tomcat manager uygulamasını kullanarak komut dosyası yapabilirsiniz.

Uygulamanız elbette yeniden başlatma sırasında kullanıcılar için kullanılabilir olacaktır. Ama eğer durumu hakkında endişeleriniz varsa, mutlaka bir yük dengeleyici arkasında yedek web sunucuları var. Güncelleştirilmiş bir savaş dosya dağıtırken, geçici olarak dağıtım bitene kadar diğer web sunucuları için tüm istekleri gönderin dengeleyici yük olabilir. Ve diğer web sunucuları için Tekrarla.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • LivestrongWoman

    LivestrongWo

    1 Aralık 2011
  • Thom Hall

    Thom Hall

    24 Kasım 2006