Wir entwickeln gerade eine JavaEE 6-basierte Anwendung, die auf JBoss EAP 6.1 implementiert werden soll. Die App verfügt über zwei primäre Präsentationsmechanismen: Eine Web-Admin-Konsole und eine RESTful-Service-API. Im Backend basieren sowohl die Verwaltungskonsole als auch die RESTful-Service-API auf einer Reihe von EJBs zum Ausführen von Transaktionslogik- und POJO-Diensten zum Abrufen von Daten.Einzel EAR? Oder mehrere EARs?
Es ist durchaus möglich, dass die Leistungs- und Ressourcenanforderungen für alle diese verschiedenen Schichten unterschiedlich sein können. Die RESTful-Dienste sind eher dünn und vollständig zustandslos, wohingegen die Admin-Konsole zustandsbehaftet ist und mehr interaktive Funktionalität aufweist (und daher mehr Speicher und Verarbeitung erforderlich ist). Da unsere EJBs unsere primäre transaktionale Geschäftslogik ausführen, benötigen sie mehr Verarbeitungsleistung als unsere POJO-Datendienste, die einfach die Datenbank abfragen.
Wäre es bei einer solchen Konfiguration sinnvoller, ein einzelnes EAR (in mehreren Appservers in einer Clusterkonfiguration) mit all diesen Komponenten bereitzustellen oder die einzelnen Komponenten in separate EARs aufzuteilen? Ich denke mit separaten EARs, dass ich zum Beispiel mehr Instanzen der EJB-Dienste bereitstellen könnte, wenn ich Probleme mit der Skalierbarkeit feststellen kann, obwohl die Webkonsole (z. B.) problemlos skaliert.
Angesichts der Tatsache, dass die Skalierbarkeit jeder Schicht/Komponente unterschiedlich ist, welchen Ansatz sollte ich nehmen? Ist der Aufwand, entfernte EJB-Aufrufe über EARs hinweg durchführen zu müssen, um ein solches Modell zu berücksichtigen? Jeder Rat wird sehr geschätzt!
Hervorragende Beratung! Danke für dieses Detail. Das ist genau die Art von Informationen, die ich brauchte. – Shadowman