일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Packet
- helm
- Spring
- Operating System
- jvm
- Python
- tcp
- docker
- CVAT
- AWS
- log
- Kafka
- zookeeper
- grafana
- EC2
- aws s3
- kubeadm
- Vision
- java
- Trino
- MAC address
- ip
- kubernetes
- OS
- airflow
- PostgreSQL
- Network
- CSV
- kubectl
- JavaScript
- Today
- Total
JUST WRITE
Session Clustering 본문
성능향상, 고가용성을 위해서 Multi Server로 구성하다보면 Session 정합성 문제가 발생하게 된다.
이러한 문제를 해결하기 위해 Sticky Session, Session Clustering과 같은 기술이 고안되었다.
Sticky Session
sticky란 단어는 사전적으로 끈적거리는 이라는 의미를 가진다.
Sticky Session는 특정 사용자가 처음 Request를 처리한 서버에서 계속 Request를 처리하는 방식이다.특정 사용자 - 특정 서버가 끈적한 관계(?)를 가지게 되는 구조이다.Cookie를 이용하거나 IP Tracking 방식을 통해 구현된다.
단점
- Load Balancing이 잘 작동하지 않을 수 있다.
- 한 서버로 과부하가 될 수 있다.
- 해당 서버 fail시 Session 소실 될 수 있다.
Session Clustering
Session Clustering은 한 Session을 여러 Server에서 동일하게 관리하는 방식이다.
Session이 하나로 관리 되므로 다른 Server에서 동일하게 Request 처리가 가능하다.
하지만, Server가 늘어날 시 다시 설정, Clustering를 해야 되는 단점이 있다.
Session Storage
Redis에서 Session Storage 기능을 제공하여 따로 Session 관리만을 위한 서버를 구성할 수 있다.
Scale out시 생기는 Session Clustering의 문제를 보완할 수 있다.
하지만 Redis 서버에 문제 발생 시 모든 Session이 죽을 수 있다.
해당 방식으로 구현 시 Redis 서버 failover를 고민해야 한다.
[참고사이트]
Sticky Session과 Session Clustering
배경
smjeon.dev
다중 서버 환경에서 Session은 어떻게 공유하고 관리할까? - 2편(Sticky Session, Session Clustering, Session St
개요 지난 시간에 서버의 성능을 업그레이드하는 두 가지 방법을 알아보았습니다. 그중 스케일 아웃을 하면 여러 대의 서버가 각각 세션 저장소를 독립적으로 갖게 되므로 정합성 이슈가 발생
hyuntaeknote.tistory.com
Multi Server에서 Session 관리 방법 (Sticky Session, Session Clustering, Redis Session Storage)
Scale-up을 하기 전에는 한대의 WAS 서버로 세션을 처리했습니다.하지만 서버의 대수를 늘린 후에는 세션을 어디에 저장할 것인지라는 이슈가 발생합니다. 만약 1번 서버에 어떤 사용자의 세션을
velog.io
'Network' 카테고리의 다른 글
SSL (0) | 2021.09.18 |
---|---|
HTTP vs HTTPS (0) | 2021.09.17 |
Load Balancing (0) | 2021.08.31 |
CSR vs SSR (0) | 2021.08.21 |
Web의 역사(1) (0) | 2021.08.20 |