본문 바로가기

카테고리 없음

[Redis] Spring Boot + Redis으로 세션 클러스터링(Session Clustering)하기

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