Local, Global, Distributed Session

kkambbak1·2023년 12월 26일
0

Local Session (로컬 세션)

사용자가 단일 디바이스(예: 개인 컴퓨터, 스마트폰)에서 웹 애플리케이션과 상호 작용하는 동안의 세션.
특정 디바이스와 실행되는 애플리케이션 간의 세션
이 세션은 해당 디바이스에 저장되는 정보로 유지됨.

글로벌 세션

사용자가 여러 디바이스에서 웹 애플리케이션과 상호 작용하는 동안의 세션

사용자가 스마트폰에서 웹 애플리케이션에 로그인한 후, 같은 계정으로 컴퓨터에서 애플리케이션에 접속하여 이전에 진행한 작업을 계속할 수 있는 것이 글로벌 세션입니다. 글로벌 세션은 여러 디바이스 간에 상태를 동기화하여 일관된 경험을 제공.

분산 세션

https://technet.tmaxsoft.com/upload/download/online/jeus/pver-20170202-000001/session/chapter_session_server.html

여러 서블릿 엔진들로 구성된 클러스터링 환경에서 동일한 클라이언트에서 요청된 일련의 요청들이 특정 서블릿 엔진에서 처리되지 않더라도 세션을 계속 유지해주는 기능을 제공

분산 세션 서버의 특징은 다음과 같다.

  • 여러 개의 서블릿 엔진으로 구성된 클러스터링 환경에서 지속적인 세션 유지 가능
  • 바로 이전의 요청을 처리하던 서블릿 엔진이 다운되어도 다른 서블릿 엔진들이 이후의 요청을 처리할 때 세션이 끊기지 않도록 한다.
  • 분산식 프로토콜을 사용하기 때문에 클러스터링 규모가 커지더라도 확장성이 용이

https://escapefromcoding.tistory.com/701 세션 클러스터링
https://tomcat.apache.org/tomcat-9.0-doc/cluster-howto.html

톰캣에서의 분산 세션

all-to-all session


all-to-all 방식은 모든 세션들이 같은 클러스터 안에 있는 다른 노드들에게도 모두 복제되는 방식. 
4개 이하의 클러스터 내에서 권고됩니다.
왜냐하면, 너무 많은 클러스터와 서버가 있으면, 그만큼 세션이 공유되는 과정에서 과부하가 생기기 때문. 또한 DeltaManager를 사용한다면, Tomcat은 어플리케이션이 배포되지 않은 노드들에게도 모두 세션을 공유합니다.

 primary-secondary session


primary-secondary 방식은 세션 정보들을 하나의 백업 노드에만 복제합니다.
(BackupManager을 사용합니다.)
아무리 많은 노드의 숫자가 늘어나더라도 하나의 노드에만 백업을 하므로 과부하의 걱정이 없음
DeltaManager를 사용하다가 후에 클러스터의 노드갯수가 더 많아질 때 BackupManager로 전환을 고려해보아야 함.

나머지는 모두 Proxy가 되며, sessionId를 복제해서 정보를 보관. 
Tomcat3와 Tomcat4에는 Session정보가 하나도 없으며, 단지 sessionId만 가집니다. 
또한 Primary와 Backup 노드는 각각 1개가 정해졌고 모든 세션들이 Tomcat1에서 처리되기 때문에 무조건 Sticky Session을 사용하게 됩니다.

profile
윤성

0개의 댓글