문서의 이전 판입니다!
CacheManager
인스턴스를 만들도록 하자.The data is held in a Terracotta Server Array with a subset of recently used data held in each application cache node. The distributed topology, available with BigMemory Max, supports a very rich set of consistency modes.
replicatePuts=true|false
: 새로운 캐시 생성시 다른 애플리케이션에 복제할 것인가(true) 아무것도 안 할 것인가(false - put은 각 애플리케이션이 각자 알아서하기)replicateUpdatesViaCopy=true|false
: 기존 캐시가 갱신 됐을 때 다른서버에 복제할 것인가(true), 다른 서버에는 단지 값이 갱신됐으니 기존 값을 지우라고 알린 뒤 필요할 때 직접 데이터를 다시 읽으라고 지시할 것인가(false).true
로 하면 네트워크 부하는 높아지고 일관성이 다소 떨어질 수 있고 애플리케이션 성능은 높아진다.false
로 하면 네트워크 부하는 낮아지고 일관성은 높아지며 애플리케이션 성능은 낮아진다. 애플리케이션 성능보다는 네트워크 부하를 줄이고 일관성을 높이고 싶을 때 사용.복제=true
전략을 사용하면 캐시 대상 Class가 한쪽 애플리케이션에서만 변경되고 다른 애플리케이션에서는 변경이 안됐을 경우 오류가 발생할 것으로 보인다.복제=false
전략이 일반적으로는 약간의 성능저하는 있어도 더 안전하다.replicatePuts=false
, replicateUpdatesViaCopy=false
를 통해 네트워크 부하를 낮춘다. 이는 또한 여러 서버의 순차 배포시에 Class 버전이 서로 안 맞는 상황에서 직렬화 오류나는 것을 방어해준다. 비동기로 한다.org.hibernate.cache.internal.StandardQueryCache
, org.hibernate.cache.spi.UpdateTimestampsCache
는 replicatePuts=true
, replicateUpdatesViaCopy=true
및 동기방식을 통해 모든 서버가 일관성있고 동일한 값을 유지하게 한다.-Dnet.sf.ehcache.skipUpdateCheck=true
ehcache.xml
설정 파일 : updateCheck=“false”
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="false" monitoring="autodetect" dynamicConfig="true">