Sto scrivendo una piccola applicazione proxy che dovrebbe essere ridondante, ad es. il proxy primario verrà eseguito su un server e quello ridondante verrà eseguito su un server separato. Esiste un semplice framework ad alta disponibilità che posso utilizzare per implementare questa ridondanza? Ad esempio, questo framework HA invierà ping tra le istanze e solleverà qualche sorta di eccezione o notifica sull'altra istanza quando il primo si spegnerà.Java HA framework
risposta
Costruire un tale sistema è stato il mio lavoro di routine negli ultimi anni. Ho trovato jgroups uno strumento molto utile per ricevere e gestire questo tipo di eventi di raggruppamento. Questo è il caso se vuoi costruire la tua infrastruttura HA. Non lo so, ma forse nel tuo caso basta un semplice proxy inverso come HAProxy.
hadoop è un buon punto di partenza
Se volete HA senza problemi, basta usare un po 'di bilanciamento del carico con capacità di HA per esempio Ultramonkey, LVS con keepalived ecc
In una configurazione HA, genere un utente desideri utilizzare l'IP virtuale, quindi, anche se avresti questo ping/avvisare funzionalità come un quadro, avrai ancora cose da fare (inizia a rispondere alle richieste sull'IP virtuale una volta che l'altra istanza non è riuscita). Quindi, a meno che tu non stia cercando un'occasione di apprendimento, consiglierei di usare un middleware invece di codificarlo da solo usando i framework.
Esistono numerosi controlli di integrità che è possibile configurare per questi middleware. Ad esempio, un semplice healthcheck potrebbe generare una richiesta GET sulla tua app. periodicamente e cerca una stringa specifica (ad es. "XXX in esecuzione".) nella risposta per verificare la tua app. sta andando bene.
Non si forniscono molti dettagli sul lavoro eseguito dall'applicazione, quindi, a seconda di quanto è stato, se è in grado di tollerare un minor dataloss, è importante in termini di tempo, se si considera il tempo degli sviluppatori rispetto al tempo della macchina, è possibile avere un diverso spettro di soluzioni.
Ci sono alcuni buoni suggerimenti sopra, vorrei aggiungere: dare un'occhiata a JMS e messaggistica persistente. Di solito questi rendono il recupero abbastanza banale, ma al costo del colpo di latenza (a meno che tu non sia un prodotto commerciale e lo impari bene o paghi il venditore per mettere a punto la tua applicazione). Con le code JMS è possibile implementare l'elaborazione active-active e risparmiarsi il mal di testa del rilevamento degli errori.
Un'altra direzione da osservare è la gestione dello stato distribuita/framework di cluster come Gigaspaces, Coherence, Gemstone, Infinispan, Gridgain e Teracotta. Questi possono replicare i tuoi dati e garantire una qualità variabile dei livelli di servizio. Molti di questi sono dotati di un tipo di rilevamento degli errori e di un meccanismo di gestione distribuito.
- 1. Framework GUI per Java
- 2. Framework GUI Java
- 3. Leggero RESTful Java Framework
- 4. Java Security Framework
- 5. Framework di interfaccia utente Java?
- 6. Gioca! framework Java Promise example
- 7. Quale framework Java per imparare?
- 8. Xcode non ha sezione Framework incorpora
- 9. Miglior framework cache per Java
- 10. Framework di raccolta script Java
- 11. Java 7: Fork/Join Framework
- 12. java web framework nel 2011
- 13. Framework come Spring Security per Java EE?
- 14. La raccolta Java non ha Map come parte del framework di raccolta
- 15. clang/libclang ha associazioni Java?
- 16. Java ha inventato le interfacce?
- 17. Java ha una valutazione lenta?
- 18. Java ha un equivalente StringStream?
- 19. Dovrei considerare Simple XML Framework per Java?
- 20. Java UI-design CLI: framework o librerie?
- 21. Perché java ha Type quando ha già Object?
- 22. Framework di sviluppo Web Java MVC?
- 23. polling lungo netty nio framework java
- 24. Java: quale framework di configurazione utilizzare?
- 25. Panoramica di librerie e framework Java
- 26. framework Java P2P NON JXTA/JXSE
- 27. Buon framework di localizzazione per Java
- 28. Play framework 1.x con java 8
- 29. Java: Spring Framework: dichiarazione di mappe nidificate
- 30. collezioni java vs mappa nel framework collezioni
Seriamente? Hadoop è un framework di calcolo distribuito. Perché dovresti usare un framework per ridurre le mappe per questo? –