728x90
Spring Boot로 개발한 서비스를 로드밸런싱 하기 위해서는 별도의 세션 저장소가 필요하다.
가장 많이 쓰이는 Redis를 이용해 Spring Boot 애플리케이션의 세션 저장소로 사용하고, 여러 WAS가 동일한 세션 저장소를 사용하도록 하여 세션 클러스터링을 진행하기로 하였다.
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
</dependency>
application.yml
spring:
redis:
host: localhost
port: 6379
session:
store-type: redis
UserinsightApplication.java
- @EnableRedisHttpSession 어노테이션을 추가하여 세션 저장소로 Redis를 사용하게 한다.
- Redis를 세션 저장소로만 사용하기 위해서는 RedisRepositoriesAutoConfiguration을 exclude한다.
(exclude 하지 않으면 모든 RedisRepository가 애플리케이션의 Repository를 다 뒤적거리고 다닌다.)
@SpringBootApplication(exclude = {RedisRepositoriesAutoConfiguration.class})
@EnableRedisHttpSession
public class UserinsightApplication {
public static void main(String[] args) {
SpringApplication.run(UserinsightApplication.class, args);
}
}
모든 설정이 완료되었다.
이제 애플리케이션을 배포하여 세션이 끊기지 않고 잘 동작하는 지 확인해 보자.
728x90