Sto pensando di sviluppare un'applicazione Web con Spring e OSGi. Sembra che si adattino bene. Quali sono le opzioni per il clustering e il bilanciamento del carico di un'applicazione del genere e quali sono i pro e i contro di ciascuno?Come cluster e bilanciamento del carico di un'app di Spring + OSGi
risposta
Né OSGi né Spring sono stati creati per risolvere problemi quali disponibilità elevata, clustering o bilanciamento del carico. Potresti, ovviamente, creare un sistema in cluster e con bilanciamento del carico usando Spring e OSGi, ma probabilmente avrai anche bisogno di qualcos'altro, come un modo per rilevare e comunicare i guasti del nodo e i livelli di carico.
Poiché si sta creando un'applicazione Web, molto probabilmente si utilizzerà uno dei numerosi server applicazioni. I prodotti Good AS offrono clustering per te. Alcuni forniscono anche il bilanciamento del carico. È inoltre possibile ottenere il bilanciamento del carico attraverso una configurazione completamente indipendente della propria, utilizzando ad esempio Apache per far fronte ai server delle applicazioni principali.
Se si è davvero decisi a creare la propria soluzione, ho visto JGroups utilizzato in più prodotti per fornire l'infrastruttura necessaria per creare una soluzione di clustering e/o bilanciamento del carico. Alcuni dei prodotti di memorizzazione nella cache distribuiti in memoria utilizzano JGroups, ad esempio.
Parlando di cache distribuite, prodotti come Ehcache possono aiutare con i problemi di ridimensionamento e bilanciamento del carico.