redis를 이용해서 httpSession을 공유하는 방식이 좀 더 많이 활용되지만,
이미 mongoDB를 사용하고 있다면, mongoDB를 활용한 session공유가 더 좋을 수 있다.
특히 요즘엔 HDD대신에 SSD를 많이 사용하므로 SSD기반의 mongoDB라면 redis에 가까운 속도를 낼 것으로 예상된다.
spring-boot에서 사용하려면
gradle방식의 경우 dependency를 아래와 같이 추가하고
compile('org.springframework.session:spring-session-data-mongodb')
HttpSessionConfig 클래스만 만들면 된다. ( default가 30분이라서 1시간으로 바꾼 예제이다. )
@EnableMongoHttpSession(maxInactiveIntervalInSeconds = 3600) //default 1800
public class HttpSessionConfig {
@Bean
public JdkMongoSessionConverter jdkMongoSessionConverter() {
return new JdkMongoSessionConverter(Duration.ofMinutes(60)); //default 30
}
}