목요일, 11월 14, 2019
Home Linux zookeeper Watch Java Example

zookeeper Watch Java Example

zookeeper Watch Java Example

Watches

zookeeper는 watch의 개념을 지원합니다 . 클라이언트는 znode에서 watch를 설정할 수 있습니다.
znode가 변경되면 watch가 트리거되고 제거됩니다.
watch가 트리거되면 클라이언트는 z 노드가 변경되었음을 알리는 패킷을 수신합니다.
클라이언트와 zookeeper 서버 중 하나의 연결이 끊어지면 클라이언트는 로컬 알림을받습니다. 

참조 : http://zookeeper.apache.org/doc/r3.4.10/javaExample.html

zookeeper Java API를 소개하기 위해 아주 간단한 watch클라이언트를 개발했습니다.
이 zookeeper 클라이언트는 zookeeper 노드가 변경되는지 감시하고 프로그램을 시작하거나 중지하여 이에 응답합니다.

 

일반적으로 zookeeper 응용 프로그램은 연결을 유지하는 장치와 데이터를 모니터링하는 장치의 두 가지로 나뉩니다. 이 응용 프로그램에서 Executor 라는 클래스 는 zookeeper 연결을 유지하고 DataMonitor 라는 클래스 는 zookeeper 트리의 데이터를 모니터링합니다. 또한 Executor는 메인 스레드와 실행 로직을 포함합니다. znode의 상태에 따라 사용자 상호 작용이 거의없고 인수로 전달한 실행 가능한 프로그램과의 상호 작용 및 요구 사항에 따라 샘플이 종료 및 재시작되는 것도 담당합니다.

 

아래의 JAVA 예제는 zookeeper node에 /znode 을 생성된 상태에서 /znode의 data값이 수정되었을때 watch 모니터링에 대한 구현입니다.

Executor Class

DataMonitor Class

아래는 Executor.java 를 실행한 화면입니다.

Executor.java를 실행후 zkCli 를 이용하여 /znode의 값을 아래와 같이 수정합니다.

zkCli 를 이용하여 /znode의 값을 수정후 아래와 같이 감시 이벤트를 발생하여 /znode의 값을 출력합니다.

 

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Time limit is exhausted. Please reload the CAPTCHA.

최신글

에픽게임즈 – RUINER

에픽게임즈 RUINER 11월15일까지 무료배포 RUINER는 사이버 대도시 렝콕의 2091년을 배경으로 하는 잔혹 액션 슈터 게임입니다. 주인공인 사이코패스는 부패한 시스템에 대한 사실을...

인기글

원격데스크톱RDP 접속정보Log 삭제

원격데스크톱RDP 접속정보Log 삭제 첫번째로 Default.rdp 파일을 지우면 됩니다. 두번째로 아래와같이 접속기록이 남아있는데요. 접속기록은 레지스트리 편집기를 통해서 삭제가 가능합니다. 위와 같이 HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault 의 값과 HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers의 해당 값을 삭제해주시면...

DB접속정보 암호화 Spring 및 프로퍼티 설정

DB접속정보 암호화 Spring 및 프로퍼티 설정 Spring으 DataSource이용하다보면 DB 접속 User, password를 설정화일에 그대로 노출되는 경우가 보안에 너무 취약하게 됩니다. jasypt 을 이용하여 password부분 암호화에 대하여 설명하겠습니다. 1. 다운로드 http://www.jasypt.org/download.html에서...

Tvheadend 4.4.20171030 로그인 문제 해결방법

Tvheadend 4.4.20171030 로그인 문제 해결방법 tvheadend-testing 4.4.20170707-3 를 설치하게 되면 sc-media 라는 그룹이 생성됨. 아래와 같이 tvheadend 로그인 사용자를 sc-media 그룹에 추가 permission 수정 chown -R sc-tvheadend:tvheadend-testing /var/packages/tvheadend-testing vi...

Tomcat 인스턴스 여러개 실행하기

1.tomcat 7 다운로드 tomcat 7 다운로드 2.압축해제 아래의 경로에 압축해제 E:Serverapache-tomcat-7.0.63 3.tomcat 인스턴스 #1 생성 E:Serverinstanceai001에 E:Serverapache-tomcat-7.0.63아래의 conf , logs, temp, work 폴더를 복사합니다. 4.E:Serverinstanceai001bin start, stop bat생성 E:Serverinstanceai001bin 아래의 폴더에 start.bat, stop.bat 생성 start.bat...