부하 균형 중의 Session 공유 Memcached 솔 루 션

1849 단어 Nginx
세 션 불일치 문제
우선 우 리 는 왜 공 유 를 실현 해 야 하 는 지 알 아야 한다. 만약 당신 의 사이트 가 한 기계 에 저장 되 어 있다 면 이 문 제 는 존재 하지 않 는 다. 세 션 데이터 가 바로 이 기계 에 있 기 때문이다. 그러나 만약 당신 이 부하 균형 을 사용 하여 요 구 를 다른 기계 에 나 누 어 주 었 다 면?이 럴 때 세 션 id 는 클 라 이언 트 에 문제 가 없 지만 사용자 가 두 번 이나 다른 기계 에 요청 하면 세 션 데이터 가 한 대의 기계 에 존재 할 수 있 습 니 다. 이 럴 때 세 션 데 이 터 를 찾 지 못 하 는 상황 이 발생 하기 때문에 세 션 의 공 유 는 문제 가 됩 니 다.
세 션 일치 성 솔 루 션
1. session 복사
      tomcat 자체 에 session 을 복사 하 는 기능 이 있 습 니 다.
2. 공유 세 션
      세 션 을 전문 적 으로 관리 하 는 소프트웨어 가 필요 합 니 다. memcached 캐 시 서비스 (다음은 memcached) 는 tomcat 와 통합 하여 tomcat 가 세 션 을 공유 하 는 데 도움 을 줄 수 있 습 니 다.
memcached 설치
1. memcached 메모리 데이터베이스 설치
     yum –y install memcached
     telnet localhost 11211 사용 가능
2. 웹 서버 가 memcached 에 연 결 된 jar 패 키 지 를 tomcat 의 lib 로 복사
3. tomcat 의 conf 디 렉 터 리 에 있 는 context. xml 설정
   memcached Nodes 속성 을 설정 하고 memcached 데이터베이스 의 ip 과 포트 를 설정 합 니 다. 기본 값 11211, 여러 개 면 쉼표 로 구분 합 니 다.
  이 설정 은 tomcat 서버 가 memcached 캐 시 에서 session 을 가 져 오 거나 session 을 넣 도록 합 니 다.


테스트 세 션 일치 사례
여기에 tomcat 에 있 는 index. jsp 홈 페이지 를 수정 하고 페이지 에 Session ID 를 기록 합 니 다. 다음 과 같 습 니 다.


SessionID:

SessionIP:

tomcat1


memcached 메모리 데이터베이스 시작: service memcached start
tomcat 서버 를 열 고 페이지 에서 tomcat 홈 페이지 를 테스트 합 니 다. 여러 번 리 셋 했 을 때 session Id 가 항상 같은 것 을 발 견 했 습 니 다.이 럴 때 memcached 서버 를 다시 시작 하면 Session ID 가 변 하기 때문에 프로그램 이 실행 되 는 동안 메모리 서버 를 함부로 다시 시작 할 수 없 음 을 주의해 야 합 니 다.

좋은 웹페이지 즐겨찾기