2014-11-01 3 views
0

поэтому я развернул мое приложение весны на Heroku с двумя узлами, и я заметил, что если я добавлю продукт в корзину, и я начну обновлять страницу корзины, иногда вижу продукт, иногда продукт не там. Поэтому я думаю, что, возможно, каждый раз каждый раз нажимает на разные узлы.Весенняя сессия в Paas Sticky Session

На веб-сайте весенней сессии я могу видеть This can make clustering much easier. This is nice because the clustering setup is done in a vendor neutral way. Furthermore, in some environments (i.e. PaaS solutions) developers cannot modify the cluster settings easily. Но я не мог найти, как настроить параметры для липкой сессии с помощью spring-session. Моя установка только один Ouf из коробки:

@Bean(name = { "defaultRedisSessionRepository", "sessionRepository" }) 
@ConditionalOnProperty(name = { "nemesis.platform.redis.url" }) 
public SessionRepository defaultRedisSessionRepository(RedisTemplate<String,ExpiringSession> redisTemplate) throws Exception { 
    return new RedisOperationsSessionRepository(redisTemplate); 
} 

тогда в моей MVC конфигурации:

@Bean(name = {"defaultSessionFilter", "sessionFilter"}) 
public Filter sessionFilter() { 
    CompositeFilter compositeFilter = new CompositeFilter(); 
    compositeFilter.setFilters(Arrays.asList(new SessionRepositoryFilter(applicationContext.getBean("sessionRepository", SessionRepository.class)), applicationContext.getBean(UrlEncoderFilter.NAME, UrlEncoderFilter.class))); 

    return compositeFilter; 
} 

, а затем в моем WebApplicationInitializer:

final FilterRegistration sessionFilterChainReg = servletContext.addFilter("sessionFilter", DelegatingFilterProxy.class); 
    sessionFilterChainReg.addMappingForServletNames(EnumSet.of(DispatcherType.REQUEST, DispatcherType.ERROR, DispatcherType.ASYNC, DispatcherType.FORWARD, DispatcherType.INCLUDE), false, dispatcherServletReg.getName()); 

ответ

1

Spring Session не делает установку липкий сессий. Вместо этого он позволяет любому JVM искать объект сеанса, помещая его в центральный хранилище данных (то есть Redis).