2011-08-04 2 views
8

현재 우리는 2 개의 응용 프로그램 서버를 보유하고 있으며 각각 응용 프로그램 수준 캐시가 있으며 중앙 데이터베이스 서버를 가지고 있습니다. 두 서버의 응용 프로그램 캐시를 동기화하기 위해 우리는 중간에 JMS 브로커를 설정했습니다. JMS에 메시지를 보내는 한 서버의 캐시 지우기에서 other가 등록되어 있으므로 메시지를 가져오고 메시지 내용을 기반으로 특정 항목을 지 웁니다.중앙 집중식 캐시 서버. (Ehcache 또는 Hazelcast)

이 메시징 시스템은 캐시 항목을 지우는 데 대기 시간을 추가하기 때문에 일정 시간 동안 응용 프로그램 수준 캐시간에 불일치가 발생합니다.

그래서 모든 캐시를 동기화 상태로 유지하기 위해이 모든 추가 작업을 피하기 위해 중앙 집중식 캐시 서버가 있다고 생각했습니다.

우리는, Hazelcast이 캐시 홀드 결과 집합을 으로 Ehcache/테라코타 또는 를 사용하여 생각하고 정보를 고정하고, 일부 시스템 특정 한다거나 할 수 있습니다.

우리에게 가장 적합한 캐시 솔루션을 제안하십시오.

답변

1

우리는 중앙 집중화 된 Memcached 서버 (Hibernate 2 차 수준 캐시 및 기타 캐싱 요구 사항)와 그 잘 작동하는 서버를 사용하고 있습니다. 우리는 XMemcached 클라이언트와 Memcached를 사용하고 있으며 지금까지 문제없이 작동합니다.

Hazelcast : 분산 맵을 사용하여 매우 쉽게 제공 (로트의 다른 것들의 가치에

는하지만 몇 가지 아이디어를 제공하기 위해 노력하겠습니다을 위해
+1

모든 memcache 클라이언트를 사용하여 Hazelcast 노드에있는 항목을 캐시 할 수 있습니다. Hazelcast는 memcache 프로토콜을 지원합니다. –

9

나는 아마 최고의 솔루션을 제안 할 수 없습니다 보세요 - 분산 SQL 쿼리는 매우 깔끔합니다) :

Map<String, Object> map = Hazelcast.getMap("xxx"); 

그리고 완료되었습니다. 표준 API를 사용하여지도에서 작업하십시오. Hazelcast 설정/설정은 Ehcache/TC와 비교하여 매우 쉽습니다. 모니터링 웹 응용 프로그램은 사용하기 쉽고 도움이되지만 누락 된 것이 있습니다. 성능은 두 개의 서버와 같이 작은 클러스터에 충분해야합니다.

Ehcache/Terracotta : 설치 (테라코타 서버)에 새로운 인프라 구성 요소가 도입 될 것이므로 단점 일 수 있습니다. 이 설정을 사용하면 배우고 시도할만한 것들이 내 경험에서 매우 강렬합니다. 이 약속은 엔터프라이즈 급 수준의 성능 및 모니터링 기능입니다.

성능 요구 사항이 극히 높지 않으면 개인적으로 Hazelcast로 이동하여 Ehcache/TC의 복잡성을 피할 수 있습니다.

+1

나는 jeha와 동의한다. 또한 Hazelcast는 클러스터 작업에서 매우 손쉽게 제공되는 매끄러운 원격 스레딩 기능을 제공하며 JMX와 잘 작동합니다. 우리는 하젤 캐스트와 함께 매우 기뻤습니다. – ecodan

관련 문제