2014-03-06 1 views
0

저는 Ehcache가 배포 된 웹 응용 프로그램을 만들고 있습니다. 이 응용 프로그램은 여러 서버간에로드 균형 조정됩니다. 앱은 각 서버에 설치되며 사용자가 앱에 액세스하면 부하 분산 서버 중 하나로 리디렉션됩니다.로드 균형 조정 서버를 사용할 수 없으면 Ehcache와 Spring이 어떻게됩니까?

다음 사항에 대한 올바른 이해가 있습니까? 사용자가 키 요청을하고 @Cacheable이라는 주석이 있으면 Ehcache 상점의 값을 확인합니다. 키가 저장소에 있으면 값이 Ehcache에서 반환되고 키가 저장소에 없으면 키와 해당 값이 저장소에 추가되고 그 값이 반환됩니다. 부하가 분산 된 서버 중 하나를 사용할 수 없게되고 사용자가 현재 사용할 수없는 서버에 이미 캐시 된 값을 요청하면이 새로운 값이 캐시 저장소에 추가되고 위에서 설명한대로 사용자에게 반환됩니다.

사용자가 사용할 수없는 키를 요청할 위험은 없습니다.

답변

0

의 의미를 이해할 수 없습니다. 사용 가능한 키가 없습니다..

기본적으로 Spring caching abstraction은 설명 된대로 더 많거나 적게 작동합니다. Spring은 실제 캐싱 비즈니스를 구성된 캐싱 라이브러리에 위임합니다. 귀하의 경우, 이것은 ehcache입니다.

노드 당 캐시가 하나 인 경우 각 노드에는 해당 데이터 복사본이 있습니다. 한 서버가 다운되고 사용자가 아직이 서버의 저장소에없는 것을 요청하면 사용자가 설명한대로 해당 노드의 저장소에 저장됩니다.

분산 캐시가있는 경우 서버가 중단된다는 사실은 사용자의 질문과 관련하여 의미가 없습니다. 캐시 된 데이터는 다른 노드에서 계속 사용할 수 있습니다.

어쨌든 Cacheable은 메서드를 호출하기 전에 캐시에서 값을 검색하려고 시도하고 캐시 히트의 경우에 직접 반환합니다. 캐시 미스의 경우, 메소드가 실행되고 그 결과가 캐시에 저장됩니다.

관련 문제