使用Spring Boot实现嵌入式Tomcat 7集群

7

我正在使用spring-boot开发Web应用程序。 我想要对spring-boot嵌入式的Tomcat 7进行集群化。 我花了一整天的时间搜索,但几乎所有的答案都使用server.xml和apache。 但是在spring-boot上使用server.xml的方法,我找不到。 我认为我需要配置多个连接器、引擎等。 我不确定这是否是正确的方法。 请告诉我正确的方法。

2个回答

4
你可以使用负载均衡器(如nginx)来分配负载,并使用Spring-session来外部化会话处理。
查看示例此处

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接