ZooKeeper 튜토리얼: Apache ZooKeeper의 아키텍처란 무엇입니까?

분산 시스템이란 무엇입니까?

분산 애플리케이션은 네트워크의 여러 시스템에서 실행될 수 있는 애플리케이션입니다. 동시에 실행됩니다neo특정 작업을 완료하기 위해 서로 조정함으로써 사용됩니다. 이러한 작업은 비분산 응용 프로그램에서 완료하는 데 많은 시간이 걸릴 수 있습니다.

주키퍼란?

아파치 사육사 대규모 호스트 집합을 관리하는 데 도움이 되는 오픈 소스 분산 조정 서비스입니다. 분산 환경에서는 관리와 조정이 까다롭습니다. Zookeeper는 이 프로세스를 자동화하여 개발자가 분산 특성에 대해 걱정하지 않고 소프트웨어 기능 구축에 집중할 수 있도록 합니다.

Zookeeper는 분산 애플리케이션에 대한 구성 정보, 이름 지정, 그룹 서비스를 유지하는 데 도움을 줍니다. 애플리케이션이 자체적으로 구현되지 않도록 클러스터에서 다양한 프로토콜을 구현합니다. 이는 여러 시스템에 대한 일관된 단일 보기를 제공합니다.

왜 아파치 주키퍼인가?

Zookeeper의 인기를 뒷받침하는 중요한 이유는 다음과 같습니다.

  • 서버 프로세스 간의 상호 배제 및 협력을 허용합니다.
  • 이는 애플리케이션이 일관되게 실행되도록 보장합니다.
  • 거래 프로세스는 부분적으로 완료되지 않습니다. 성공 또는 실패 상태가 제공됩니다. 분산된 상태는 유지될 수 있지만 결코 잘못된 것은 아닙니다.
  • 연결하는 서버에 관계없이 클라이언트는 서비스에 대해 동일한 보기를 볼 수 있습니다.
  • 특정 규칙 세트에 따라 데이터를 인코딩하는 데 도움이 됩니다.
  • 파일 및 디렉터리와 유사한 표준 계층적 네임스페이스를 유지하는 데 도움이 됩니다.
  • 로컬 또는 지리적으로 연결될 수 있는 단일 시스템으로 실행되는 컴퓨터
  • 클러스터 내 노드 가입/탈퇴 및 노드 상태를 실시간으로 확인할 수 있습니다.
  • 더 많은 머신을 배포하여 성능을 높일 수 있습니다.
  • 더 나은 조정을 위해 노드를 리더로 선출할 수 있습니다.
  • ZooKeeper는 쓰기보다 데이터 읽기가 더 자주 발생하는 워크로드에서 빠르게 작동합니다.

ZooKeeper 아키텍처: 어떻게 작동하나요?

에 대한 간략한 설명은 다음과 같습니다. 아파치 사육사 아키텍처:

  • Zookeeper는 클라이언트-서버 아키텍처를 따릅니다.
  • 모든 시스템은 데이터 사본을 저장합니다.
  • 리더는 스타트업에서 선출됩니다.
ZooKeeper의 아키텍처
ZooKeeper의 아키텍처

서버 : 클라이언트가 연결되면 서버는 승인을 보냅니다. 연결된 서버에서 응답이 없을 경우 클라이언트는 자동으로 메시지를 다른 서버로 리디렉션합니다.

Client: 클라이언트는 분산 응용 프로그램 클러스터의 노드 중 하나입니다. 이는 서버의 정보에 액세스하는 데 도움이 됩니다. 모든 클라이언트는 클라이언트가 살아 있다는 것을 서버가 알 수 있도록 돕는 메시지를 정기적으로 서버에 보냅니다.

리더: 서버 중 하나가 리더로 지정됩니다. 클라이언트에게 모든 정보를 제공하고 서버가 살아 있다는 승인도 제공합니다. 연결된 노드 중 하나라도 실패하면 자동 복구를 수행합니다.

수행원: 리더의 지시를 따르는 서버 노드를 팔로어(Follower)라고 합니다.

  • 클라이언트 읽기 요청은 해당 연결된 Zookeeper 서버에 의해 처리됩니다.
  • 클라이언트 쓰기 요청은 Zookeeper 리더에 의해 처리됩니다.

앙상블/클러스터: 앙상블 또는 클러스터라고 불리는 Zookeeper 서버 그룹입니다. 클러스터 모드에서 ZooKeeper 인프라를 사용하면 Apache를 실행할 때 시스템을 최적의 값으로 유지할 수 있습니다.

ZooKeeper 웹UI: ZooKeeper 리소스 관리를 사용하려면 다음을 사용해야 합니다. 웹 UI. 명령줄을 사용하는 대신 웹 사용자 인터페이스를 사용하여 ZooKeeper로 작업할 수 있습니다. ZooKeeper 애플리케이션과 빠르고 효과적인 통신을 제공합니다.

ZDM(주키퍼 데이터 모델)

이제 이 ZooKeeper 튜토리얼에서는 Zookeeper 데이터 모델에 대해 알아 보겠습니다. 아래 그림은 Apache Zookeeper 데이터 모델을 설명합니다.

사육사 데이터 모델
사육사 데이터 모델
  • 사육사 데이터 모델은 각 노드를 ZNode라고 하는 계층적 네임스페이스를 따릅니다. 노드는 클러스터가 실행되는 시스템입니다.
  • 모든 ZNode에는 데이터가 있습니다. 자녀가 있을 수도 있고 없을 수도 있습니다.
  • Z노드 경로:
    • 표준, 슬래시로 구분된 절대값
    • 상대 참조를 사용하지 마십시오.
    • 이름에는 유니코드 문자가 포함될 수 있습니다.
  • ZNode는 데이터 변경에 대한 통계 구조와 버전 번호를 유지합니다.

Zookeeper 노드 유형

Znode에는 세 가지 유형이 있습니다.

고집 znode: 이 유형의 znode는 특정 znode를 생성한 클라이언트의 연결이 끊어진 후에도 살아 있습니다. 기본적으로 Zookeeper에서는 지정되지 않은 경우 모든 노드가 지속됩니다.

임시 znode: 이 유형의 사육사 znode는 클라이언트가 살아 있을 때까지 살아 있습니다. 따라서 클라이언트가 사육사로부터 연결이 끊어지면 클라이언트도 삭제됩니다. 게다가 임시 노드는 자식을 가질 수 없습니다.

순차 znode: 순차 znode는 임시적이거나 지속적일 수 있습니다. 따라서 새 znode가 순차 znode로 생성될 때. 원래 이름에 10자리 일련 번호를 첨부하여 znode의 경로를 지정할 수 있습니다.

ZDM- 시계

Zookeeper, 감시 이벤트는 감시를 설정한 클라이언트로 전송되는 일회성 트리거입니다. 해당 시계의 데이터가 변경되었을 때 발생했습니다. ZDM watch를 사용하면 znode가 변경될 때 클라이언트가 알림을 받을 수 있습니다. getData(), getCh와 같은 ZDM 읽기 작업idleren()에는 시계를 설정하는 옵션이 있습니다.

시계는 주문되며 시계 이벤트의 순서는 업데이트 순서에 해당합니다. 클라이언트는 해당 znode에 해당하는 새 데이터를 보기 전에 znode에 대한 감시 이벤트를 볼 수 있습니다.

ZDM- 액세스 제어 목록

Zookeeper는 ACL을 사용하여 znode에 대한 액세스를 제어합니다. ACL은 (Scheme:id,permission) 쌍으로 구성됩니다.

ACL 체계로 구축:

world: 단일 ID를 가짐, 누구든지

auth: ID를 사용하지 않습니다. 인증된 사용자를 나타냅니다.

다이제스트: 사용자 이름 사용: 비밀번호

호스트: 클라이언트의 호스트 이름을 ACL ID ID로 사용할 수 있습니다.

IP: 클라이언트 호스트 IP 주소를 ACL ID ID로 사용합니다.

ACL 권한:

  • 몹시 떠들어 대다
  • 독서
  • 쓰다
  • 삭제
  • 관리자

예(IP: 192.168.0.0/16, 읽기)

ZKS – 세션 상태 및 수명

ZKS – 세션 상태
ZKS – 세션 상태
  • 요청을 실행하기 전에 클라이언트가 서비스와의 세션을 설정해야 하는 것이 중요합니다.
  • 클라이언트가 서비스로 전송되는 모든 작업은 자동으로 세션과 연결됩니다.
  • 클라이언트는 클러스터의 모든 서버에 연결할 수 있습니다. 하지만 단일 서버에만 연결됩니다.
  • 세션은 "주문 보장"을 제공합니다. 세션의 요청은 FIFO 순서로 실행됩니다.
  • 세션의 주요 상태는 1) 연결 중, 2) 연결됨 3) 닫힘 4) 연결되지 않음입니다.

ZooKeeper 설치 방법

단계 1) 계속 구독을 클릭하세요
이것으로 가라. 링크 그리고 '구독 계속'을 클릭하세요.

ZooKeeper 설치

단계 2) 이용 약관 동의
다음 페이지에서 라이센스 계약 동의

ZooKeeper 설치

단계 3) 감사 메시지 표시
당신은 다음을 볼 것입니다wing 메시지

ZooKeeper 설치

단계 4) 구성하려면 계속을 클릭하세요.
5분 후 페이지를 새로고침하고 구성을 진행하세요.

ZooKeeper 설치

단계 5) '계속 실행'을 클릭하세요.
다음 화면에서 ZooKeeper를 실행하세요.

ZooKeeper 설치

단계 6) 축하합니다!
너 끝났어!

아파치 ZooKeeper 애플리케이션

Follow에 사용되는 Apache Zookeeperwing 목적 :

  • 구성 관리
  • 이름 지정 서비스
  • 리더 선택
  • 메시지 대기열
  • 알림 시스템 관리
  • 동기화
  • 분산 클러스터 관리

Zookeeper를 사용하는 기업

  • Yahoo
  • 페이스북
  • 이베이
  • 트위터
  • 넷플릭스
  • Zynga
  • 뉴타 닉스

Zookeeper 사용의 단점

  • 새로운 Zookeeper 서버를 추가하는 경우 데이터 손실이 발생할 수 있습니다.
  • 사용자에게는 이전이 허용되지 않습니다.
  • 랙 배치 및 인식에 대한 지원을 제공하지 않습니다.
  • Zookeeper에서는 우발적인 데이터 손실을 방지하기 위해 포드 수를 줄이는 것을 허용하지 않습니다.
  • 서비스가 가상 네트워크에 배포된 경우 전체를 다시 설치하지 않고 서비스를 호스트 네트워킹으로 전환할 수 없습니다.
  • 초기 배포가 끝나면 서비스는 볼륨 요구 사항 변경을 지원하지 않습니다.
  • 관련된 노드 수가 많기 때문에 실패 지점이 두 개 이상 있을 수 있습니다.
  • 메시지는 통신 네트워크에서 손실될 수 있으며, 메시지를 다시 복구하려면 특수 소프트웨어가 필요합니다.

요약

  • 분산 응용 프로그램은 네트워크의 여러 시스템에서 실행될 수 있는 응용 프로그램입니다.
  • Apache Zookeeper는 대규모 호스트 세트를 관리하는 데 도움이 되는 오픈 소스 분산 조정 서비스입니다.
  • 서버 프로세스 간의 상호 배제 및 협력을 허용합니다.
  • Server, Client, Leader, Follower, Ensemble/Cluster, ZooKeeper WebUI는 중요한 Zookeeper 구성 요소입니다.
  • 세 가지 유형의 Znode는 지속성, 임시 및 순차입니다.
  • ZDM watch는 watch를 설정한 클라이언트로 전송되는 일회성 트리거입니다. 해당 시계의 데이터가 변경되었을 때 발생했습니다.
  • Zookeeper Hadoop은 ACL을 사용하여 znode에 대한 액세스를 제어합니다.
  • 구성 관리, 서비스 이름 지정, 리더 선택, 메시지 대기열, 알림 시스템 관리, 동기화, 분산 클러스터 관리 등
  • Yahoo, Facebook, eBay, Twitter, Netflix는 사육사를 사용하는 알려진 회사입니다.
  • 도구의 주요 단점은 새 Zookeeper 서버를 추가하는 경우 손실이 발생할 수 있다는 것입니다.