세션 관리 응용 프로그램 서버 클러스터

고 가용성 애플리케이션 서버 아키텍처 설계는 주로 비 저장 서비스의 특성에 따라 있지만, 사실은 항상 비즈니스의 상태가됩니다 .

트랜잭션 전자 상거래 사이트에서 구매 정보에 대한 필요성은 사용자의 쇼핑 카트, 사용자 요청이 장바구니에 상품의 구매를 증가 할 때마다 기록;

소셜 네트워킹 사이트에서는 현재 로그인 한 사용자를 기록해야합니다.

컨텍스트 객체에서 이러한 웹 응용 프로그램을 수정하는 여러 요청을 사용하여 참조되는 세션 (세션)을 , 독립형 경우, 세션 관리자는 웹 서버 컨테이너에 배포 할 수있다. 클러스터 된 환경에서 부하로 인해 분산 서버는 하나의 응용 프로그램 서버의 클러스터에 요청을 분산, 각각의 요청이 독립 세션보다 더 정확한 얻을 여전히 가능하여 훨씬 더 복잡 확인 할 수 있습니다.

클러스터 환경, 세션 관리의 주요 수단은 다음과 같습니다 :

  • 세션 복제
  • 세션 바인딩 (세션 고정)
  • 세션 서버

다음으로, 우리는 하나 하나 소개했다.

A, 세션 복사

서버 간의 동기화를위한 세션, 각 서버는 모든 사용자 세션 정보를 가지고, 사용자는 서버에 요청할 수 있습니다.

여기에 그림 삽입 설명
단점 :

  • 너무 많은 메모리를 가지고
  • 동기화 프로세스는 네트워크 대역폭과 서버 프로세서 시간을 소모

두 세션 바인딩

세션 바인딩 (고정 세션은), 또한 끈적 끈적한 세션으로 알려져 있습니다. 사용자가 서버 세션에 저장 될 수 있도록 사용자가 같은 서버로 라우팅되도록 모든 요청은 부하 분산을 구성 할 수 있습니다. ( 이 부하 분산 서버에서 같은 리버스 프록시로드 밸런싱과 같이 HTTP 프로토콜 계층에서 작동한다 )

여기에 그림 삽입 설명
단점 :

서버가 다운 될 때 해당 서버의 모든 세션을 잃게됩니다.

세 개의 세션 서버

종래의 MySQL, 레디 스 또는 Memcached가 사용이 메모리 데이터베이스를 이용하여, 별도의 세션 정보 저장 서버 사용. 세션 서버 세션의이 통합 관리.

여기에 그림 삽입 설명
이 솔루션은 실제로 응용 프로그램 서버의 상태가 상태 및 상태 응용 프로그램 서버 세션 서버로 분리 한 다음 두 서버의 서로 다른 특성이 자신의 아키텍처를 설계되었습니다입니다.

장점 : 확장 성이 큰 규모의 사이트를 만들기 위해, 클러스터 응용 프로그램 서버는 일반적으로 비 상태 유지 필요, 다음 응용 프로그램 서버는 사용자 세션 정보를 저장할 수 없습니다. 세션 서버 사용자 세션 정보 따라서 비 저장 응용 프로그램 서버를 보장 별도로 저장됩니다.

단점 : 세션 액세스 코드를 달성했다.

참조 :

"대형 웹 사이트 기술 프레임 워크"- 리 Zhihui가

기사는이 책에서 그림입니다

추천

출처blog.csdn.net/u013568373/article/details/91396924