개발노트

25.03.06 세션 클러스터링 및 포트 가 다른 서버 간의 세션 공유 본문

MSA

25.03.06 세션 클러스터링 및 포트 가 다른 서버 간의 세션 공유

ddong-kka 2025. 3. 6. 00:02

세션 클러스트링이란?

세션 클러스터링은 여러 서버에 분산된 애플리케이션 환경에서 사용자 세션 정보를 중앙화하여 여러 서버에서 세션 정보를 일관되게 유지하고 관리할 수 있게 하는 기술이다. 이를 통해 사용자가 여러 서버에 요청을 보냈을 때, 각 서버에서 동일한 세션 정보를 사용할 수 있다

출처 : gpt

 

 

왜 세션 클러스터링을 사용하는가?

 

MSA에서 각 서비스가 독립적으로 실행되며, 서비스 간의 통신이 빈번하게 이루어진다. 이떄 로드 밸런싱을 사용해 트래픽을 여러 서버나 인스턴스로 분산하는데, 각 요청이 어떤 서비스 인스턴스로 향할지는 예측할 수 없다. 사용자가 여러 서버에 분산된 애플리케이션으로 요청을 보내게 되면, 각 서버 간에 세션 정보를 공유하지 않으면 세션 상태를 유지할 수 없게 된다

 

그래서 세션 클러스터링을 통해 중앙 집중식으로 세션 데이터를 관리하면, 사용자가 여러 서버로 요청을 보내더라도 동일한 세션 정보를 사용할 수 있게 되어 세션 정보 일관성을 유지할 수 있다

 

MSA 환경에서 로드 밸런싱을 효과적으로 활용하려면 세션 클러스터링을 통한 세션 정보 공유 및 일관성 유지가 필수적이다.

 

  • 세션 공유 : 여러 서버 간에 세션 데이터를 공유하여 사용자가 여러 서버에 요청을 보낼 때 세션 정보를 일관되게 유지
  • 성능 : Redis는 빠른 읽기/쓰기 속도를 제공하므로, 세션 정보에 대한 빠른 처리와 관리를 할 수 있다.
  • 확장성 : 수평 확장이 가능한 시스템에서 세션 정보를 중앙화하여 새로운 서버가 추가되거나 제거될 때 일관된 세션 관리를 유지
  • 내결함성 : Redis는 복제와 영속성 기능을 제공하여 장애 발생 시 세션 정보를 손실 없이 복구할 수 있다.

 

 

 

'MSA' 카테고리의 다른 글

25.03.12 도메인 주도 설계 ( DDD )란?  (0) 2025.03.12
25.03.11 Kafka 란?  (1) 2025.03.11
25.03.10 RabbitMQ 란?  (0) 2025.03.10
25.02.11 CircuitBreaker 란?  (0) 2025.02.11
[MSA] SpringBoot 멀티 모듈 프로젝트 구성  (0) 2025.02.10