Spring Boot 초보 튜 토리 얼 21 분산 세 션

적용 필드
  • 웹 이 대규모 방문 에 적응 할 수 있 도록 응용 프로그램의 클 러 스 터 배치
  • 가 필요 하 다.
  • 클 러 스 터 배 치 를 실현 하려 면 먼저 session 의 통일 을 해결 해 야 한다. 즉, session 의 공유 체 제 를 실현 해 야 한다. 즉, 분포 식 세 션
  • 분산 식 세 션 의 실현 방식
  • resin / tomcat 웹 용기 자체 의 session 복제 메커니즘 기반
  • NFS 공유 파일 시스템 기반
  • 쿠키 기반 세 션 공유
  • 데이터베이스 기반 세 션 공유
  • 분포 식 캐 시 기반 세 션 공유, 예 를 들 어 memcached, Redis, jbosscache
  • ZooKeeper 기반 세 션 공유
  • 다음 코드 는 Spring Session 기반 구현 을 보 여 줍 니 다. 이것 은 Redis 캐 시 기반 Session 공유 입 니 다.
    프로젝트 1
    설정 한 Redis 가 자신 이 유지 하고 있다 면 편리 하 게 이 루어 질 수 있 습 니 다.
    Spring Session 공식 문서
    http://docs.spring.io/spring-session/docs/current/reference/html5/guides/boot.html
    의존 도 를 높이다
    pom 파일 에 다음 의존 도 를 추가 하기 만 하면 됩 니 다.
    
        org.springframework.boot
        spring-boot-starter-redis
    
    
    
        org.springframework.session
        spring-session
    
    

    시작 클래스 추가 @ EnableRedisHttpSession 설명
    프로필 application. properties
    spring.redis.host=localhost
    spring.redis.port=6379
    server.session.timeout=36000
    

    Spring Boot 는 자동 으로 session 을 파일 저장 방식 에서 Redis 방식 으로 전환 합 니 다. 더 이상 설정 할 필요 가 없습니다.
    방안 2
    설정 한 Redis 가 자신 이 유지 하고 있 는 것 이 아니라면 설정 을 변경 할 수 없습니다 (예 를 들 어 응용 프로그램 이 아 리 클 라 우 드 에 배치 되 어 있 고 아 리 클 라 우 드 의 Redis 데이터 베 이 스 를 사용 하 는 것).
    추가 기능
    프로젝트 1 은 Redis 의 기능 이 필요 하기 때 문 입 니 다.
    notify-keyspace-events
    

    기본적으로 이 기능 은 켜 지지 않 습 니 다.
    추가 기능 오픈
    프로젝트 1 을 사용 하려 면 다음 명령 을 통 해 Reids 가 이 기능 을 시작 하도록 해 야 합 니 다.
    redis-cli config set notify-keyspace-events Egx
    

    다음 과 같은 RedisSession Config 클래스 를 새로 만들어 야 합 니 다. Redis 설정 을 바 꾸 지 않 고 Redis 를 사용 하여 Session 을 저장 할 수 있 습 니 다.
    RedisSessionConfig
    package com.jege.spring.boot.Config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.session.data.redis.config.ConfigureRedisAction;
    import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
    
    /**
     * @author JE 
     * @email [email protected]
     * @description:     Redis        Redis   Session 
     */
    @Configuration
    //     Session    ,  : 
    @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 36000)
    public class RedisSessionConfig {
        @Bean
        public static ConfigureRedisAction configureRedisAction() {
            return ConfigureRedisAction.NO_OP;
        }
    }
    

    봄 세 션 기본 세 션 시간
    스프링 세 션 의 기본 세 션 만 료 시간 은 30 분 입 니 다.
    프로젝트 1 을 사용 할 때 application. properties 에서 설정 할 수 있 습 니 다.
    server.session.timeout=36000
    

    세 션 만 료 시간 을 설정 합 니 다.
    세 션 을 프로젝트 2 로 설정 하면 application. properties 에 설 치 된 세 션 만 료 시간 은 소 용이 없습니다.위의 RedisSession Config 클래스 에서 설명 한 인 자 를 사용 하여 설정 해 야 합 니 다.
    검증 하 다.
    nginx 를 사용 하여 tomcat 2 개 를 설정 하여 검증 해 야 합 니 다. 기 다 려 야 합 니 다.
    기타 관련 항목
  • 봄 부츠 초보 강좌 1 - HelloWorldhttp://blog.csdn.net/je_ge/article/details/53270821

  • 원본 주소
    https://github.com/je-ge/spring-boot
    제 글 이나 코드 가 도움 이 된다 면 커피 한 잔 사 주세요.당신 의 지 지 는 내 가 계속 창작 하도록 격려 할 것 입 니 다!감사합니다!

    좋은 웹페이지 즐겨찾기