Mehrere JVMs vs single app server

Bin ich den Umgang mit einem system, das läuft, eine Java-Anwendung pro Kunde in seiner eigenen JVM. Wir haben etwa ein halbes Dutzend dedizierte Server, auf denen fast 100 JVMs insgesamt jetzt und sets von benutzerdefinierten Skripts für die Verwaltung von JVMs. Dieses setup ist wirklich mit deren Alter zu diesem Zeitpunkt: die Verwaltung, dass viele JVMs ist immer eine überwachungs - /management-nightmare und wir sind ständig Umgang mit heap Größenanpassung Probleme. Wir möchten den Wechsel zu einem moderneren Ansatz und führen Sie einfach eine Reihe von Anwendungen in einer einzigen app-server pro physische Maschine. Allerdings halten die Anwendungen getrennt hat deutliche Vorteile in Sachen isolation (z.B. out of memory-Fehler wirken sich nur auf einen Kunden). Jeder Kunde ist software-stack-Speicher-Anforderungen stark variieren.

Meine Frage: gibt es eine Möglichkeit, das beste aus beiden Welten hier und führen Sie mehrere Anwendungen in einer JVM (app-server) und die immer noch halten einige Grad von isolation? Oder ist es nur eine moderne Tatsache des Lebens, dass Sie brauchen, um Speicher zu verwalten Anforderungen einer Reihe von Anwendungen, die in diesen Tagen? Gibt es andere Lösungen, die hier neben einem app-server oder Java-EE-container (z.B. Wildfly oder Frühjahr), dass ich hier fehlen? Wie es scheint, dieses system ist eine Zurückhaltung, die aus einer anderen ära!

Der moderne Ansatz ist zunehmend auf die Nutzung pro app JVMs auf virtualisierten hosts. Für die Skalierung, die Sie benötigen, empfehle ich Blick auf Cloud Foundry zu abstrahieren, die meisten von der management-über die Sie sprechen.
Ähnlich chrylis' Kommentar, der moderne Ansatz ist NICHT zu verwenden app-Server. Multi-tenancy ist auch tot, weil warum haben die den ärger, dass, wenn Sie verwenden können, VMs oder Containern wie Docker, um Ihnen eine echte Trennung?
Ich denke, man konzentriert sich auf das falsche problem: warum sind Sie ständig mit heap-Größe Fragen? Sind Ihre apps ein Speicherleck? Sie haben unbegrenzten Verbrauch von Speicher? Bietet Ihre app nicht sesshaft zu einer stetigen Verwendung von Speicher für eine bestimmte Arbeitsauslastung?
können Sie fügen Sie einige details, was genau sind diese management-Einschränkungen. Nur interessiert es zu wissen, was es braucht, um zu verwalten 100 JVMs !

InformationsquelleAutor Noky | 2014-10-01

Schreibe einen Kommentar