2012-10-02 14 views
7

Ho un'applicazione web scritta con spring su un server jetty. a causa del bilanciamento del carico devo replicare le sessioni http e i contesti di sicurezza primaverile sui server web.Come posso creare un cluster in un'applicazione mvc di primavera?

Qualcuno può indicarmi un esempio funzionante su come renderlo possibile?

i controller mvc fanno parte di spring-security-oauth2, quindi ho una capacità limitata di influenzarli e il jetty è un prerequisito per il nostro ambiente. per la maggior parte dei dati e il caching useremo infinispan.

Non sono riuscito a trovare alcuna informazione corrente su come conciliare con la primavera, quindi sono grato per ogni aiuto.

risposta

7
  1. Qual è apolide, bilance automaticamente (come la maggior parte dei fagioli di primavera e controller)

  2. ciò che è condiviso, deve essere replicati o tutte le istanze del cluster devono condividere su

    1. Le sessioni HTTP devono essere replicate. Se lo sono, la sicurezza Primavera (che memorizza contesto di protezione nella sessione solo lavoro

    2. database sarà solo di lavoro - potrete sia sufficiente utilizzare uno o replicare pure

    3. Infinispan dovrebbe gestire replica di in-memory memorizza nella cache

a condizione che si memorizzano solo Serializable articoli in sessione HTTP e in cache, di clustering l'applicazione dovrebbe solo wo rk. Fai attenzione al codice sincronizzato (dovrebbero essere distribuiti i blocchi?) E ai bean con stato.

Vedi anche

+0

Sono consapevole di queste cose, ma non riesco a trovare alcun esempio/documentazione di sorta che spiega come configurare la primavera/pontile per fare la replica di sessione. – Laures

+1

@Laures: per quello che vedo, Jetty (almeno 6) non supporta la replica di sessione immediatamente. È necessario utilizzare alcune soluzioni su di esso, come Hazelcast, Gigaspace, JGroups, Terracotta, database ... Vedi: http://webtide.intalio.com/2011/08/nosql-sessions-with-jetty7-and-jetty8/Considerare anche il passaggio a Tomcat, che supporta il cluster out-of-the-box. Dal punto di vista del framework Spring, non è necessario modificare nulla (ad eccezione del progetto, se necessario). –

+0

fantastico. mi aspettavo che avrei dovuto creare un bean di sesseion-spring a molla infinispan/hazelcast e configurarlo da qualche parte nello spazio dei nomi mvc. ora posso farlo direttamente nel molo, perché il passaggio a Tomcat non è probabilmente un'opzione. – Laures

Problemi correlati