Libri su come migliorare le prestazioni e la reattività delle applicazioni Web JEE [closed]

5

Qualcuno sa di buoni libri su questo argomento? Ho cercato su Amazon, ma quelli che ho trovato sono pubblicazioni piuttosto vecchie.

    
posta CoolBeans 17.01.2011 - 16:43
fonte

1 risposta

4

Modifica per coprire la domanda rivista (caratteristiche originariamente richieste per le lingue JEE ad alte prestazioni al posto dei libri disponibili).

Consigli di lettura

Potresti scoprire che Gestione prestazioni EE Pro Java EE & L'ottimizzazione può aiutare. Disponibile su Zshops (USA / Regno Unito) e Kindle se necessario. Potrebbe essere un po 'datato al 2006, ma i principi che descrive sono solidi.

Caratteristiche generali di un'applicazione JEE ad alte prestazioni

Supponendo che si stia bersagliando un'applicazione Web Java e non un backend potenziato JMS, considerare quanto segue:

Stateless

Avere un design stateless riduce il disadattamento di impedenza tra il protocollo web sottostante (HTTP) e l'applicazione. Puoi scalarlo molto meglio perché puoi semplicemente aggiungere più nodi al tuo cluster e non preoccuparti di condividere lo stato tra i nodi.

semplice

Se il numero complessivo di istruzioni e processi complessi viene ridotto, lo sforzo che l'applicazione deve effettuare per ottenere una richiesta elaborata viene ridotto. Se tutte le funzionalità possono essere facilmente contenute in una singola applicazione (ad esempio, una singola WAR con più JAR che forniscono funzionalità a livelli), i colli di bottiglia per il flusso di dati vengono notevolmente ridotti.

Comunicazione interna efficiente

L'analisi richiede tempo. Se il tuo sistema si basa sulla trasformazione XSLT dopo la trasformazione, sul marshalling XML, quindi su unmarshalling e poi sul marshalling di nuovo mentre lavori sui layer distribuiti su più macchine in una DMZ, introduci alcuni overhead significativi. Se tutti i sistemi interni funzionano su Java, è possibile prendere in considerazione l'utilizzo di RMI internamente, con l'interfaccia pubblica rivolta basata sui servizi Web RESTFul. I servizi Web sono in realtà per architetture eterogenee per consentire l'interoperabilità.

Uso efficiente delle risorse

Utilizza uno strato di cache se sarà di aiuto. È possibile testare le prestazioni di un contenitore di applicazioni più leggero (ad esempio Jetty with Spring) anziché l'approccio WebSphere più gonfiato. Cambia l'hardware nei server per utilizzare le unità a stato solido o una soluzione interamente RAM per prestazioni estreme.

Accesso al database ottimizzato

Verificare che non vi siano scansioni di tabelle complete che si verificano su tabelle di grandi dimensioni come risultato di query o indici mal progettati. Il tuo DBA dovrebbe essere in grado di indirizzarti a problemi di prestazioni su Oracle o DB2. Qualsiasi implementazione JPA / JTA moderna (ad esempio Hibernate) produrrà query efficienti in risposta a un modello di dominio efficiente.

    
risposta data 17.01.2011 - 22:16
fonte

Leggi altre domande sui tag