2013-03-28 1 views
0

내 프로젝트에서 동물원 자바 클라이언트를 사용해야합니다.다른 버전의 클라이언트가있는 사육사 서버에 연결할 수 있습니까?

A는 zookeeper 3.3.5 java 클라이언트를 사용하여 "엔터프라이즈 서비스 디렉토리"사육사 클러스터에 연결하는 라이브러리 인 종속성 B를가집니다. 이 클러스터는 제 통제하에 있지 않습니다. 제 코드에 사용할 수 없습니다. A와 B는 같은 클래스 로더에서 실행되지만 A의 코드는 3.3.5 클라이언트를 사용해야합니다.

다른 JVM에서 실행되는 다른 종속성 C (Solr 4.2)가 있습니다. C use zookeeper 3.4.5 자바 클라이언트.

문제는 A가 3.3.5 클라이언트를 사용하고 C가 3.4.5 클라이언트를 사용하지만 두 개의 다른 사육사 클러스터를 만들고 싶지 않다는 것입니다. 동일한 zk 클러스터에 연결할 수 있습니까? 가능한 경우 어떤 버전의 서버를 사용해야합니까?

답변

1

오래된 클라이언트 및 최신 서버는 매우 일반적인 사용 사례입니다. 업그레이드 할 때 - 클라이언트가 이전 버전을 일정 기간 동안 유지하면서 서버가 다음 버전으로 이동하면 천천히 마이그레이션됩니다 (일반적으로 서버보다 많은 클라이언트가 있음). 그래서 이것은 많은 운동을하게됩니다.

특히 3.4 클라이언트/서버는 3.4 클라이언트/서버에서 작동하도록 ZK 커뮤니티에서 확인되므로 잘 작동합니다.

걱정할 필요가있는 한가지는 3.4 클라이언트에서 3.3에없고 서버가 3.3 인 새 기능을 사용하는 경우입니다. 예를 들어 멀티, 3.4에 추가 되었다면 문제가 생길 것입니다. Multi는 3.3 서버에서 지원되지 않으므로 실패합니다. 두 클러스터가 3.4 서버 또는 3.3 서버 클러스터이고 클라이언트가 3.3 또는 3.4이고 3.3 이후에 추가 된 기능을 사용하지 않으면 사용자는 정상이어야합니다.

+0

3.4 클라이언트 기능을 사용하고 있지는 않지만 C가이 기능을 사용하고 있는지 확실하지 않습니다. 그래서 3.4 서버를 사용할 것입니다. 고마워요 :) – user2218067