싱글 톤 개체를 클러스터 환경에 리팩터링하는 최선의 전략은 무엇입니까?클러스터 환경의 싱글 톤
우리는 데이터베이스에서 사용자 정의 정보를 캐시하기 위해 싱글 톤을 사용합니다. 해당 은 대부분 읽기 전용이지만 특정 이벤트가 발생할 때 새로 고침됩니다.
이제 응용 프로그램을 클러스터 된 환경에 배포해야합니다. 정의에 따라 각 JVM에는 자체 Singleton 인스턴스가 있습니다. 따라서 단일 노드에서 새로 고치기 이벤트가 발생하고 캐시가 새로 고쳐질 때 캐시가 JVM과 동기화되지 않을 수 있습니다.
캐시를 동기화 상태로 유지하는 가장 좋은 방법은 무엇입니까?
감사합니다.
편집 : 캐시는 주로 UI에 자동 완성 목록 (성능상의 이유)을 제공하는 데 사용되며 우리는 Websphere를 사용합니다. 그래서 어떤 Websphere 관련 팁도 환영합니다.
당신은 2에 대해 자세히 설명 할 수 있습니까? 당신은 JMS pub/subscribe 모델을 의미합니까? – lud0h
예 솔루션 2는 본질적으로 개별 캐시 인스턴스에 대한 변경을 브로드 캐스팅하기 위해 pub/sub 메커니즘을 사용하는 방법입니다. 각 캐시가 구독하는 응용 프로그램 서버에서 실행되는 JMS 항목을 만들어야합니다. 해당 데이터가 변경되면 메시지를 해당 주제에 게시해야합니다. 그러면 각 구독자는이 메시지를 수신하고 이에 따라 로컬 캐시를 업데이트합니다. – pjp
데이터가 자주 변경되지 않으면 옵션 1을 사용합니다.이 방법을 사용하여 참조 데이터를 새로 고치는 여러 시스템에서 작업했습니다. 나는 우리가 매 30 분마다 캐시를 새로 고쳐야한다고 생각한다. 선택한 새로 고침 기간은 참조 데이터가 사용되는 방식을 기반으로합니다. – pjp