使用spring-boot的嵌入式Tomcat 7集群

时间:2014-07-03 09:32:48

标签: java tomcat7 cluster-computing spring-boot

我使用spring-boot开发web应用程序。 我想集群spring-boot嵌入式tomcat 7。 我整天都在搜索,但答案几乎都是使用server.xml和apache。 但是在spring-boot上使用server.xml的方式,我无法找到它。 我想我需要使用配置多连接器和引擎等。 我不知道,这是正确的方式。 请告诉我。

2 个答案:

答案 0 :(得分:4)

您可以使用负载均衡器(例如nginx)来分配负载和Spring会话以外部化会话处理。

参见示例here

答案 1 :(得分:2)

我终于找到了解决方案。其实我找到了一个博客网站。

正在使用 Redis

链接为http://dmitrijs.artjomenko.com/2014/02/storing-sessions-in-redis-with-spring.html

我的应用程序是由java7开发的,但是示例是使用java8。

所以,我修改了一些代码,修改后的代码如下:

@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");
        }});
    }
}