[java] 사육사의 실제 사용 [닫힘]

최근 에 Zookeeper를 살펴 보았는데 현재 사용중인 사람이 있는지, 저장을 위해 특별히 사용하고있는 것이 무엇인지 궁금했습니다.

가장 일반적인 사용 사례는 구성 정보입니다.하지만 어떤 종류의 데이터를 저장하고 있습니까?



답변

DOSGi 의 Apache CXF 구현 은 서비스 등록 저장소로 zookeeper를 사용합니다. 개별 컨테이너에는 모든 서비스 이벤트를 수신하고 서비스 상태가 변경 될 때 배포를 나타내는 속성이있는 분산 소프트웨어 (dsw) 번들이 있습니다. dsw는 참조 구현 사례에서 zookeeper를 사용하여 서비스를 임시 노드로 저장하는 검색 번들과 통신합니다. 다른 인스턴스는 노드 구조의 변경 사항을 찾고 로컬 시스템에 프록시를 등록합니다. 최종 결과는 일반 OSGi로 코딩하고 투명한 배포로 끝낼 수 있다는 것입니다.


답변

ZooKeeper가 지원하는 무료 소프트웨어 프로젝트 :

ZooKeeper가 지원하는 Apache 프로젝트 :

출처 : https://cwiki.apache.org/confluence/display/ZOOKEEPER/PoweredBy


답변

HBase는 현재 버전 이전에 “헤드 노드”가 담당했던 활동을 조정하기 위해 Zookeeper를 사용합니다. Zookeeper 사용으로 이동하면 중앙 제어가 더 이상 단일 실패 지점이 아닙니다.

사육사는 매우 다재다능합니다. 다음은이를 사용하여 분산 동시 대기열을 만드는 예입니다.

http://blog.cloudera.com/blog/2009/05/building-a-distributed-concurrent-queue-with-apache-zookeeper/

물론 분산 시스템에서 리소스 잠금 등을 만드는 데 사용할 수도 있습니다.


답변

오래된 질문이지만이 페이지는 사육사 사용 사례에 대한 Google 검색에서 먼저 표시되므로 업데이트 된 목록을 제공하는 것이 가장 좋을 것이라고 생각했습니다.

  1. 위키 백과
  2. 사육사 위키
  3. 실제 사용자

답변

Norbert 는 확장 가능한 프로덕션 시스템의 좋은 예입니다. 저는 일반적으로 Netty, Protocol Buffers 및 Zookeeper를 클러스터 된 서비스를 실행하기위한 경량 프레임 워크로 통합합니다. 프로토콜 버퍼는 서비스 API를 지정하는 데 사용되며 Netty는 전송 계층 추상화를 구현하며 Zookeeper는 본질적으로 내결함성 검색 서비스입니다.

서비스 인스턴스가 시작될 때마다 Norbert는이를 특정 서비스 유형의 사용 가능한 인스턴스로 등록합니다. 구현 관점에서 두 개의 Zookeeper 트리를 만듭니다.

  • 서비스의 알려진 모든 인스턴스를 나열하는 “/ ServiceName / members”
  • 현재 사용 가능한 서비스 인스턴스를 나열하는 “/ ServiceName / available”

각 노드의 가장 중요한 속성은 해당 서비스 인스턴스에 연결하는 데 사용할 URL입니다. 이는 클라이언트 측로드 밸런싱을 가능하게합니다. Norbert 클라이언트는 주어진 서비스 이름에 대한 URL 목록을 찾고 그중 하나에 연결을 시도하는 것은 순서입니다 (예 : 라운드 로빈 또는 무작위).


답변

Elastic Cloud의 ZooKeeper에 대한 좋은 기사 ZooKeeper-The King of Coordination이 있습니다.

예를 들어 Found에서는 검색, 리소스 할당, 리더 선택 및 우선 순위가 높은 알림을 위해 ZooKeeper를 광범위하게 사용합니다. 이 기사에서는 조정의 왕을 소개하고 Found에서 ZooKeeper를 사용하는 방법을 자세히 살펴 봅니다.


답변

Solr은 또한 ZooKeeper를 통합하기 위해 노력하고 있습니다. 여기에서 동적 구성, 샤딩, SPOF 제거 (마스터 / 슬레이브 선택), 재조정 등에 사용중인 것을 볼 수 있습니다.