inblog logo
|
stwin755

    scale-out에서의 세션 관리

    Feb 14, 2024
    scale-out에서의 세션 관리
    Contents
    scale-out세션을 관리하는 몇 가지 방법

     

    scale-out

    트래픽 증가 등의 이유로 서버 장비를 여러 대 추가하여 시스템을 확장하는 방법
    같은 일을 하는 서버를 추가하기에 수평적으로 확장
    데이터변화가 적은 웹 서버에 적합
     

    세션을 관리하는 몇 가지 방법

    1. sticky session
      1. 말 그대로 고정된 세션 IP 또는 JsessionId를 기억하고 있다가 요청이 다시 오면 그 해당 IP로 보내줌
      2. 단점: 느릴 수 있다
    1. JsessionId 복사
      1. 서버에서 프로세스 하나 만들어서 다른 서버로 요청 (동기화된다) → JsessionId 복사
      2. 단점: 타이밍적으로 동기화 하기 직전에 다른 곳으로 갈 수도 있어서 튕겨져나갈 수 있다
    1. DB에 저장 (session을 안 씀)
      1. 서버에서 JsessionId를 DB로 넘겨 각 서버가 DB를 공유
      2. 단점: I/O발생
     
    세 가지 방법 다 단점이 명확
    그래서 나온 방법
     
    1. 메모리데이터베이스
      1. 하드디스크를 안 쓰고 메모리에서 처리하기 때문에 영구히 기록되지 않는다
      2. I/O가 일어나지 않는다
      3. session은 어차피 영구히 기록될 필요가 없으니 괜찮다
      4. Redis, Memcached가 있는데
        1. Redis는 싱글스레드
        2. Memcached는 멀티스레드
     
     
     
    Share article
    Contents
    scale-out세션을 관리하는 몇 가지 방법

    stwin755

    RSS·Powered by Inblog