Libro / risorsa sull'impostazione del bilanciamento del carico e del failover per l'applicazione Web Java basata su servlet [chiuso]

StackOverflow https://stackoverflow.com/questions/276623

Domanda

Stiamo creando un sistema web utilizzando la tecnologia Java e Servlet (in realtà Wicket per il livello di presentazione) e abbiamo bisogno che il nostro sistema sia disponibile quasi sempre poiché i nostri clienti dipenderanno abbastanza da esso.

Questo ci ha portato a cercare un buon libro incentrato sull'argomento o un'altra risorsa che spieghi come impostare un'architettura più ridondante e sicura per il nostro sistema.

Un elenco non esclusivo di domande che abbiamo al momento:

  • Come hai un nome di dominio (come http://www.google.com ) che sono effettivamente servito da diversi server con bilanciamento del carico per distribuire gli utenti? Non esiste sempre un punto più debole in tale soluzione (i due server DNS [in quanto non possono esserci di più] per google.com nel loro caso)?
  • Sembra una buona idea avere diversi server di database per ridondanza e bilanciamento del carico. Come è impostato?
  • Se uno dei nostri server Web si interrompe, vorremmo avere una sorta di failover e consentire agli utenti di utilizzarne uno ancora attivo. Tra l'altro le sessioni devono essere sincronizzate in qualche modo. Come è impostato?
  • Abbiamo bisogno anche di qualche tipo di transazione sincronizzata?
  • Amazon Computer Cloud è una buona opzione per noi? Come lo installiamo lì? Ci sono alternative che sono convenienti?
  • Dobbiamo eseguire in un contenitore Java EE come JBoss o Glassfish?
È stato utile?

Soluzione

Per quanto riguarda GlassFish, l'amministrazione centralizzata tramite la GUI dell'amministratore è di grande aiuto per gli ambienti con più di un'istanza di appserver da gestire. " Sempre disponibile " è sovraccarico. Può essere la disponibilità del servizio senza conservazione della sessione in caso di errore oppure può significare la disponibilità dei dati con il backup delle informazioni sulla sessione. Naturalmente GlassFish può fare entrambe le cose. Un paio di risorse che potrebbero essere di aiuto per GlassFish e l'alta disponibilità:

Guida all'alta disponibilità di GlassFish: http://www.sun.com/offers/details/glassfish_HAref_config.html

Impostazione di un cluster GlassFish in 10 minuti: http://blogs.oracle.com/jclingan/entry/glassfish_clustering_in_under_10

John Clingan, Product Manager del gruppo GlassFish

Altri suggerimenti

La wiki di Liferay ha un guida alla disponibilità elevata che delinea un'architettura che potrebbe fungere da punto di partenza.

Questo è probabilmente un approccio semplicistico, ma recentemente ho implementato un tipo simile di bilanciamento del carico e soluzione ad alta disponibilità.
La mia applicazione aveva Tomcat come contenitore Web e database MySQL. Ho supportato Tomcat con Apache Http Server e ho usato il modulo Ap_m mod_jk2 come interfaccia per gestire il bilanciamento del carico e il failover.

Molte risorse sono disponibili sul web a partire dalla documentazione di Apache. Eccone alcuni:

http://tomcat.apache.org/connectors-doc/reference /workers.html

http: //www.redhat com / docs / manuali / rhaps / jonas-guida / s1-load-balancing.html

http://tomcat.apache.org/connectors-doc/webserver_howto /apache.html

Per MySQL, controlla il proxy MySQL per il bilanciamento del carico e il failover. È una buona idea avere più di un server di database per il bilanciamento del carico e il failover. un set di database può essere per letture e l'altro set per scritture. A seconda del volume, potresti voler allocare più / meno server per lettura / scrittura. La documentazione del database potrebbe anche aiutarti nella configurazione.

HTH.

Un mio amico afferma che Creazione di siti Web scalabili è il definitivo libro sull'argomento:

Architetture Internet scalabili di Theo Schlossnagle potrebbe anche essere interessante.

Ho appena finito di leggere Architecting Enterprise Solutions: modelli per sistemi basati su Internet ad alta capacità . Ottima introduzione per me su scalabilità, disponibilità, prestazioni, sicurezza e molti altri aspetti per i sistemi aziendali

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top