2014-07-03 16 views
6

Sviluppo di applicazioni Web tramite avvio a molla. E voglio raggruppare il tomcat incorporato con avvio a molla 7. Ho cercato per tutto il giorno, ma le risposte stanno quasi usando server.xml e apache. Ma il modo di usare server.xml su spring-boot, non riuscivo a trovarlo. Penso di aver bisogno dell'uso della configurazione connettore multiplo, del motore e così via. Non so, è giusto. Per favore, mostrami la strada.Cluster Tomcat 7 incorporato con avvio a molla

risposta

2

Ho finalmente trovato la soluzione. In realtà ho trovato un blog.

Si utilizza Redis.

Il collegamento è http://dmitrijs.artjomenko.com/2014/02/storing-sessions-in-redis-with-spring.html

La mia applicazione è sviluppata da Java7, ma ad esempio sta usando java8.

Così, ho modificato un po 'di codice, il codice modificato è qui sotto:

@Bean 
public EmbeddedServletContainerCustomizer containerCustomizer() { 

    return new EmbeddedServletContainerCustomizer() { 
     @Override 
     public void customize(ConfigurableEmbeddedServletContainer container) { 
      TomcatEmbeddedServletContainerFactory containerFactory = (TomcatEmbeddedServletContainerFactory) container; 
      containerFactory.addContextValves(new RedisSessionHandlerValve()); 
      ArrayList<MyTomcatContextCustomizer> customizers = Lists.newArrayList(new MyTomcatContextCustomizer()); 
      containerFactory.setTomcatContextCustomizers(customizers); 
     } 
    }; 
} 

public class MyTomcatContextCustomizer implements TomcatContextCustomizer { 
    @Override 
    public void customize(Context context) { 
     context.setSessionTimeout(30); 
     context.setManager(new RedisSessionManager() {{ 
      setHost("127.0.0.1"); 
     }}); 
    } 
} 
4

È possibile utilizzare un bilanciatore di carico (come nginx) per distribuire il carico e Spring-sessione di esternare la gestione delle sessioni.

Vedere l'esempio here.