2012-02-06 27 views
5

Bir GlassFish sunucusu (v 3.1) başına yaklaşık 100 müşteri için bir barındırma ortamı ayarlamanız gerekir. Her müşterinin, birbirinden bağımsız olarak çalıştırılabilen özel yapılandırılmış bir uygulamaya ihtiyacı vardır. (JDBC, JMS, tek uygulamayı yeniden başlatma olanağı) Tek bir sanal makinenin çalıştırılması tercih edilir, çünkü her biri 750MB RAM kullanan 100 JVM'nin başlatılması iyi bir fikir gibi gelmez.MultiStance GlassFish uygulama sunucusunda uygulama mimarisi ve dağıtımı

Şimdiye kadar aşağıdaki çözümleri test ettik, ama maalesef bunların hiçbiri benim şartlarını karşıladığını: Ayrı Domains

  1. Dağıtma uygulaması. Bu çözüm, JVM Ram kullanımı ve birden çok bağlantı noktasında birden fazla yönetim konsolunun çalıştırılmasının karmaşıklığı nedeniyle (bu kadar ayırmaya gerek duymuyor) yetersizdi. Aynı etki alanında birden çok örneğe (Glassfish'te adlandırılmış hedefler) uygulama dağıtmak. Bu çözüm, her bir örnek için ayrı bir JVM süreci oluşturması ve çok fazla RAM harcaması (her örnek için birkaç yüz MB) nedeniyle yetersizdi. Aksi halde ihtiyacımız olana yakındı. Aynı örnekte birden çok sanal ana bilgisayara uygulama dağıtma. Bu çözüm kabul edilemez çünkü Glassfish'te her sanal sunucu ayrı bir konfigürasyona sahip değildir.

herkes birden çok uygulama örneğini barındırmak için GlassFish kullanmak için en iyi yöntem/öneri nedir önerebilirsiniz? Müşteri başına 1GB ram saklamak için “mahkum” muyuz? IIS ortamından geldiğimizde, başlangıçta her biri 3-5 MB RAM kullanan ayrı Uygulama Havuzları vardı.


Uygulamamda benim bağımlılık ve paylaşımı hakkında

GÜNCELLEME

: Ben Glassfisf sunucuda gerçekleştirmek istediğiniz fikrine ise , her uygulama ayrı kaynaklar (JMS ve JDBC) ihtiyacı vardır. Bu bir problem değil, bir uygulamada etkinleştirilmiş sanal sunucular için bile uygulama başına özelleştirebiliyorum (Http Request'den sunucu adını alarak sanal sunucuyu tanıyabilir ve bu dizine konfigürasyonu uygulamak için örnek dizinde ayrı kaynak ve yapılandırma dosyaları hazırlayabilirim) sanal sunucu).

Benim 'bağımsızlığı requrements' şunlardır:

  1. Sadece bir GlassFish örneğinde birden fazla uygulama dağıtmak ve ayrı bir Java süreçlerinde aynı Java sanal makinesinin altında çalıştırmak mümkün gerekiyor.
  2. Her bir uygulamayı birbirinden bağımsız olarak başlatabilir/durdurabilirim.
  3. Bir uygulama ve diğer uygulamaları yeniden yükleyebilmem gerekir; diğer uygulamalar ise etkin kalmalıdır (IIS altında bu seçenek 'uygulama havuzunu geri dönüşüm' olarak adlandırılır).
  4. Bir uygulamada bir hata durumunda, aynı sunucu/örnek üzerindeki diğer müşteri uygulamalarını etkilememelidir. Diğer uygulamalar devam ediyor (tabii ki bu hata tüm java vm'yi bozmazsa).

Bu düşüncenin dağıtılmış yüz uygulamaları (örnek/sanal ana bilgisayarda etkinleştirilmiş) ile bir Glassfish örneğinde gerçekleştirilmesi mümkün mü? Belki de farklı isimler altında uygulamaları konuşlandırmak (burada açıklandığı gibi: home.java.net/node/676678) benim durumumda iyi bir çözüm olabilir mi?Aynı uygulamada yüz kez aynı uygulamayı farklı yöntemlerle kullanma tecrübesi olan var mı?

sayesinde

Olgierd

+0

birisi bu soru hakkında tartışmaya ilgi ise Bu daha başarılı burada yayınlanan edilmiştir: http://www.java.net/forum/topic/glassfish/glassfish/multiinstance-appliciation-architecture-and-deployment-glassfish-app-server?force=691 – rsc

cevap

1

sen Yani şimdi bu ürünün OSGi mimariden faydaları almaya refactored olduğunu fark edecektir GF 3 yığını .. kullanırsanız demetleri hatta Wab dosyaları dağıtabilirsiniz

  • farklı modüllerin sürümlerini
  • durdurmak için/yeniden başlatma uygulamalarını bağımsız
  • yönetmek: GF3.This mimarisinde (web uygulama paketleri) sağlayacaktır
  • ... perma gen alanı atık kaçınarak uygulamalarınız için

ortak paketlerini temin etmek Ama sorunuzu tek bir Java Virtual Machine ile farklı süreçler modellemek için anlayamıyorum .... One Sanal Makine (OS düzeyinde) 1 sürecini anlamına gelir ve buna karşı bir şey yapamaz ..

OSGi platformu uygulamaları için ve yazılım modülerliği için SLA koşullarıyla ilgili birçok avantaj ... HTH Jerome getiriyor

+0

soruydu GF'de çok örnekli mimariye ulaşmanın mümkün olup olmadığı. AFAIK OSGi de buna yardımcı olmuyor. Öyle görünüyor ki, bu çok-merkezli mimari burada daha doğal (http://en.wikipedia.org/wiki/Multitenancy). – rsc

İlgili konular