반응형 Server-side 개발 & 트러블 슈팅/🦍 ZooKeeper (주키퍼)4 [ZooKeeper] 주키퍼 기반 리더 선출 알고리즘 구현 Zookeeper 기반 리더 선출 알고리즘 구현이번 글에서는 Zookeeper를 활용한 리더 선출 알고리즘 구현, Jar 패키징 후 실행 할 예정이고,다음 실습에서 장애 감지 및 군집 효과(Herd Effect) 대응 전략과 재선출 알고리즘을 설명하겠습니다.리더 선출 알고리즘 구현Zookeeper는 분산 시스템의 코디네이터 역할을 수행할 수 있도록 강력한 API를 제공합니다. 그 중 하나가 리더 선출 메커니즘입니다. 핵심은 다음과 같습니다:각 클러스터 노드는 Zookeeper에 /election이라는 부모 노드 아래에 EPHEMERAL_SEQUENTIAL 모드의 자식 노드를 등록합니다.Zookeeper는 이 자식 노드들에 대해 고유한 순번을 부여합니다.노드 중 가장 작은 번호를 가진 노드가 리더가 됩니.. 2025. 4. 12. [ZooKeeper] 주키퍼 클라이언트 스레딩 모델과 Java API 연결하기 이번 글에서는 Zookeeper의 클라이언트 스레딩 모델에 대해 자세히 알아보고, Java API를 활용하여 Zookeeper와 연결하는 방법까지 단계별로 소개하겠습니다. 이 글을 읽는 독자는 Gradle 기반 프로젝트를 기준으로 따라 할 수 있습니다.Zookeeper 클라이언트 스레딩 모델Zookeeper 클라이언트를 생성하면 내부적으로 2개의 추가 스레드가 자동 생성됩니다.1. IO 스레드네트워크 통신 처리 담당Zookeeper 서버와의 세션 유지, 요청 및 응답 처리, 세션 타임아웃 관리 등 수행사용자 코드와 직접 상호작용하지 않음2. 이벤트 스레드서버와의 연결 및 해제 등 상태 변화 이벤트 처리사용자가 등록한 Watcher 트리거 관리이벤트는 발생 순서대로 하나씩 처리됨즉, Zookeeper는 이.. 2025. 4. 12. [ZooKeeper] 주키퍼 설치 및 설정 가이드 (Mac OS, Windows, Linux) ZooKeeper 설치 및 설정 가이드 분산 시스템을 설계하고 실습하기 위해 Apache ZooKeeper를 로컬에 설치하는 방법을 운영체제별로 정리했습니다.ZooKeeper는 리더 선출 알고리즘을 포함한 다양한 분산 알고리즘을 실습하는 데 핵심적인 도구입니다. 필자는 Mac OS 환경에서 설치했습니다. ZooKeeper란? ZooKeeper는 분산 시스템에서 노드 간의 일관성과 조율을 담당하는 오픈소스 분산 코디네이터이다. Apache Kafka, Hadoop, HBase 등의 프로젝트에서 기본적으로 사용된다. ZooKeeper는 다음과 같은 기능을 제공한다: 리더 선출서비스 레지스트리 및 디스커버리상태 감시 및 고장 감지분산 락(Distributed Lock)파일 시스템처럼 동작하는 트리형 데이터 .. 2025. 4. 12. [ZooKeeper] 코디네이터(Coordinator)개념과 주키퍼 소개 분산 시스템의 조율자, 코디네이터와 주키퍼(ZooKeeper) 대규모 데이터를 처리하거나 복잡한 연산을 요구하는 시스템에서는 하나의 서버로 모든 작업을 처리하는 것이 비효율적이다. 이를 해결하기 위해 분산 시스템이 사용된다. 여러 대의 서버가 협업해 작업을 처리하며, 그 안에서 역할을 배분하고 상태를 감지하며, 실패가 발생했을 때 적절히 대응하는 기능이 중요해진다. 이 모든 작업을 조율하는 역할을 맡는 것이 바로 코디네이터(Coordinator)이다. 코디네이터란? 코디네이터는 분산된 여러 노드 간의 상태를 관리하고, 특정 노드를 리더로 선출하거나, 노드 간 통신을 중재하는 핵심적인 역할을 담당한다. 이를 통해 노드들이 충돌 없이 하나의 시스템처럼 동작할 수 있게 만든다. 하지만 직접 이러한 코디네이터.. 2025. 4. 12. 이전 1 다음