0%

zookeeper Watch 개발(java) 및 분산환경 응용 예제

zookeeper watch

znode 변경에 따른 이벤트를 핸들링하기 위한것이라고 보시면 됩니다.
java 에서 제공하는 인터페이스를 통해서 간단히 개발하였습니다.

아래 경로를 참조하여 jar 을 만들었습니다.
https://zookeeper.apache.org/doc/r3.4.13/javaExample.html#sc_completeSourceCode

실행예시

1
2
3
4
5
6
7
8
java -jar javawatcher.jar {host}:{port} {namespace} {output_file_path} {execute_file_path}

# param desc
# {host}: 주키퍼 서버가 실행되는 호스트
# {port}: 주키퍼 서버가 실행되는 포트
# {namespace}: 감시하고자 하는 경로
# {output_file_path}: 네임스페이스 변경 정보를 저장하는 파일 경로
# {execute_file_path}: 네임스페이스 변경시 실행할 파일

watch 를 응용한 Application Configuration

watch 를 응용하여 분산환경에서 Application 에게 Configuration 를 전달하는 방법을 소개합니다.

구성

  1. zookeeper server
  2. application configuration manager: zkCli 를 통해 znode 를 구성합니다.
  3. watch(java): znode 변경을 감지하고 변경된 노드의 값을 cache 에 기록합니다.
  4. cache: 값을 캐시하는 용도입니다.
  5. application(web service): 웹 서비스이며 cache 에 기록된 값을 사용합니다.(출력)

흐름

docker-compose

전체적인 구성을 docker-compose 를 통해 확인해보실 수 있습니다.
https://github.com/lejewk/zk_watcher