2011-11-26 2 views
10

2 개의 webapps, admin webapp 및 실제 응용 프로그램 webapp 자체가 있습니다. 둘 다 mysql 저장소에 대한 액세스를 공유하고 Ehcache는 사용자 세부 정보를 캐시하여 REST API 요청 당 백엔드에 대한 사용자 조회가 발생하지 않도록합니다.두 개의 webapps 사이에 Ehcache를 공유하십시오.

내가 가지고있는 문제는 사용자 자격 증명을 업데이트하거나, 암호 또는 사용자 이름을 말하거나, 승인 수준 등을 변경하기 위해 관리 앱을 사용할 수 있다는 것입니다 (거의 추가하지 않습니다). 사용자 캐시를 무효화하거나 삭제하여 메인 웹 응용 프로그램이 사용자 조회시 데이터베이스에 도달하여 새로운 사용자 세부 정보를 캐시로 가져올 수 있습니다.

현재이 문제가 발생하지만 캐시 지우기는 주 클라이언트 웹 응용 프로그램에서 볼 수 없습니다.

두 개의 webapps (부두 또는 바람둥이에서 모두 호스팅되는)간에 ehcache를 공유하려면 어떻게해야합니까 ?? 현재 Jetty를 사용하고 있지만 Tomcat으로 전환 할 계획입니다.

Spring 3, Jersey, Hibernate, MySQL 및 Google Ehcache 주석을 사용하고 있습니다.

도움을 주셔서 감사합니다.

답변

3

Ehcache에는 웹 응용 프로그램으로 배포 할 수있는 REST API이 있습니다. 이렇게하면 admin과 application webapp가 모두 캐시를 공유 할 수 있습니다.

5

당신은 여기에 몇 가지 옵션이 있습니다 : 당신은 하나 개의 통지 그룹으로 응용 프로그램에 가입 JGroups를 사용하고 특정 캐시 항목 업데이트/무효화에 대해 알릴 수 있습니다

  • . 따라서 알림을 받으면 웹 앱은 로컬 EhCache 항목을 업데이트합니다.
  • 분산 캐시를 EhCache 구현으로 추가 할 수 있습니다 (실제로는 이 EhCache API 뒤에 꽂기 때문에 코드가 변경되지 않습니다). 그러면 EhCache가 배포되므로 관리자 웹 앱에서 변경된 내용이 실제 웹 앱에서 볼 수있는 으로 표시됩니다. 참고 :테라코타는 상용 라이센스가 필요합니다.
  • EhCache를 사용하는 대신 MemCached을 사용하면
    이 여러 개의 앱 중에서 하나의 공통 캐시를 가질 수 있습니다. admin 웹 앱의 변경 사항은 실제 웹 앱에서 볼 수 있습니다. MemCached
    tutorial
관련 문제