2012-03-19 11 views
5

Ho un server di bilanciamento del carico centrale e diversi server di applicazioni in esecuzione su Apache Tomcat. Il server di bilanciamento del carico riceve la richiesta e le inoltra ai server delle applicazioni in modalità round robin. Se uno di questi server applicazioni si arresta, il server di bilanciamento del carico dovrebbe interrompere l'inoltro delle richieste.Quali sono i modi migliori per monitorare lo stato del server?

La mia soluzione corrente è eseguire il ping dei server delle applicazioni ogni pochi minuti e se non si riceve una risposta, rimuoverli da un elenco di server disponibili. C'è un modo migliore per monitorare lo stato di questi server? Devo eseguire il ping più spesso o i server delle applicazioni devono informare costantemente il server di bilanciamento del carico?

risposta

5

Esegui una transazione nulla su di essa regolarmente. Il pinging non è abbastanza, esercita solo lo stack TCP/IP e ho visto sistemi operativi in ​​stati in cui TCP/IP era attivo, ma nessuna applicazione e nemmeno parte dello stack del sistema operativo stesso. L'esecuzione di una transazione esercita tutto. Includere il database nella transazione nulla.

+0

Una transazione nulla sarebbe un semplice GET che risponde solo 200 OK? –

+0

@SotiriosDelimanolis Sarebbe la transazione null-possible possibile, ma come ho detto sopra qualcosa che coinvolge il database sarebbe più completo, diciamo un SELECT ... LIMIT 1. – EJP

+0

My Servlet esegue già una query "START TRANSACTION" su MySQL il database giusto prima che gestisca la richiesta, quindi sono già coperto. Grazie per la risposta. –

0

Prima assicurare i tuoi DDOS server di ISN attrack protetti, se il dipende da voi connessione applicazione in tempo avg modificare tenere il tempo viva

allora si dovrebbe studiare circa precock mpm, credo che vi darà migliore soluzione