2009-08-10 2 views
0

Tomcat 5.5에서 실행되는 매우 많은 공개 웹 사이트에서 작업합니다. 현재 우리는 세션을 유지하기 위해 특정 서버에 stickiness가 필요합니다. 복제 세션을 시작하고 싶지만 좋은 OSS 솔루션을 찾는 데 어려움이 있습니다. 필자는 자신의 Manager (store로 memcached 사용)를 작성했지만 둘 이상의 서버가 동일한 사용자에 대한 요청을 처리하는 경우 경쟁 조건을 처리하는 데 문제가 있습니다.좋은 FOSS Java 서블릿 세션 복제 솔루션입니다.

해결 방법이 있습니까? 나는 끈적 거림이 실패 할 경우 대체로 작동하는 것이 아니라 사용자 요청이 여러 서버에 정기적으로 퍼져 나가는 경우 작동합니다.

답변

0

이것은 어려운 문제입니다. 제 의견으로는 서버가 여러 대 있고 지리적으로 분산되어 있다면 Tomcat의 서블릿 세션이 전혀 작동하지 않습니다.

우리의 솔루션은 서버를 완전히 무국적으로 만드는 것입니다. 모든 세션은 데이터베이스에만 저장됩니다. 우리는 메모리 엔진과 함께 지리적으로 지역화 된 MySQL을 사용하며 성능은 Tomcat 세션 복제를 사용하는 이전 방법보다 훨씬 낫습니다.

경쟁 조건이 훨씬 적기는하지만 가끔 발생합니다. 경합 조건을 감지하고 다시 시도 할 수 있도록 DB에 레코드 버전을 추가했습니다.

관련 문제