2017-05-17 6 views
0

Hazelcast 잠금은 임베디드 토폴로지에서 오류가 발생하지 않음을 알고 있습니다. hazelcast 문서 (http://docs.hazelcast.org/docs/3.6/manual/html-single/index.html#lock)에 명시된 바와 같이 :클라이언트/서버 토폴로지에서 여전히 잠금이 안전하지 않습니까?

... 멤버가 클러스터를 벗어날 때 그 잠금이 즉시 라이브 회원 사용할 수 있도록, 그 죽은 구성원에 의해 획득 한 모든 잠금이 제거됩니다. ..

우리의 임베디드 토폴로지에서이 동작을 테스트 할 수 있습니다. 인스턴스가 중단되면 관련된 모든 잠금이 예상대로 성공적으로 해제됩니다.

동일한 동작이 클라이언트/서버 토폴로지에 적용됩니까? 즉, 잠금을 획득 한 클라이언트가 다운되면 클러스터에서 해제 된 죽은 클라이언트에 의해 획득 된 이러한 잠금이 있습니까?

감사합니다.

답변

1

예 클라이언트는 명령을 클러스터 노드로 리디렉션하는 프록시 일뿐입니다. 바로 그 이유 때문에 행동이 동일해질 것입니다. 일반적으로 클라이언트 - 서버 아키텍처가 권장됩니다.

+0

그래서이 모든 다른 행동에 맞는 것 같아요? com.hazelcast.core.HazelcastInstance 인터페이스에 대해 코드를 작성하고 임베드 된 모드 (Hazelcast.newHazelcastInstance())와 클라이언트 모드 (HazelcastClient.newHazelcastClient())에 모두 동일한 API이기 때문에 정확한 동작을 기대할 수 있습니다. ? 그리고 왜 클라이언트 - 서버 아키텍처를 권장합니까? :) – simpleusr

+0

(유감스럽게도) 일부 예외는 노드에서보다 클라이언트에서 약간 다릅니다. 이것은 Hazelcast 4에서 (지정된 시간에) 고정되어 있다고 가정되지만 이전 버전과의 호환성을 유지합니다. 어쨌든 이러한 것들은 드물다. - 여러 이유로 클라이언트 서버를 권장하고, gc를 최적화하고, 스토리지와 비즈니스 로직 사이를 명확하게 분리하고, 독립적 인 확장 성을 제공하는 옵션이 더 있습니다. ... whitepaper가 있습니다. :) – noctarius

+0

안녕하세요 noctarius. 상세한 설명에 많은 감사드립니다. 백서에 대한 링크를 제공해 주시겠습니까? 마지막 질문 : 클라이언트/서버 모드에서 여러 응용 프로그램을 제공하는 데 가장 적합한 클러스터 토폴로지는 무엇입니까? 사실 나는 별도의 질문으로 이것을 묻습니다 : http://stackoverflow.com/questions/44039220/hazelcast-what-is-the-best-cluster-topology-to-serve-multiple-applications-in 감사합니다 – simpleusr

관련 문제