2017-11-23 1 views
1

노드의 Java 클라이언트를 사용하여 Hazelcast 클러스터에 연결하고 있습니다.Hazelcast : 클라이언트 모드에서 클러스터마다 EntryEvictedListener를 한 번만 실행하십시오.

HazelcastClient.newHazelcastClient(cfg) 

EntryEvictedListener를 클러스터마다 한 번만 실행해야합니다. 기본적으로 연결된 모든 클라이언트에서 실행됩니다.

임베디드 Hazelcast이 목표 ( Time Based Eviction in Hazelcast)에 도달하는 방법을 찾을 수 있지만,

map.addLocalEntryListener(...) 

가 클라이언트에 대해 허용되지 않는 것 같습니다.

퇴거 리스너를 클라이언트를 사용하여 클러스터마다 한 번만 실행할 수있는 방법이 있습니까?

답변

1

불행히도 아닙니다. local은 기본 파티션 구성표에 직접 연결되어 있으므로 청취자는 클러스터 노드에서 실행해야합니다. 퇴거 이벤트에서 무엇을하고 싶습니까? 아마도 다르게 달성 할 수 있습니다.

+0

감사합니다. IMap TTL 이벤트는 집계 윈도우 시간을 제한하는 데 매우 유용합니다. 즉, 오류 메시지가 오면 카운터 = 1로 맵에 저장되고 나중에 유사한 메시지가 해당 맵의 카운터를 업데이트하고 TTL 이벤트에서 경고 또는 카운터를 기반으로하지 않습니다. 는 확실히 우리는 서로 다른 접근 방식을 사용할 수 있지만, 각각의 단점이 있습니다 1. 어떤 배경 클러스터 전체 스케줄러를 가지고 - 2 점 각 메시지를 처리 ​​할 수 ​​있지만 CPU 사용량가 피킹이있을 것이다, 더 많은 코드 더 코너 케이스를 오류 도착시 카운터 확인 - 여기 계산이 너무 자주 수행됩니다. – Kirill

+0

3. 데이터 및 처리 노드 수명주기를 별도로 유지하기 위해 포함 된 Hazelcast 대신 클라이언트를 사용합니다. – Kirill

+0

죄송 합니다만 확실하지는 않습니다. 전에 메시지? – noctarius

관련 문제