사용자 도구

사이트 도구


java:zookeeper

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:zookeeper [2015/05/25 17:54]
kwon37xi [주의점]
java:zookeeper [2019/04/17 12:48] (현재)
kwon37xi
줄 2: 줄 2:
   * [[http://zookeeper.apache.org/|Apache ZooKeeper]]   * [[http://zookeeper.apache.org/|Apache ZooKeeper]]
   * [[http://curator.apache.org/|Curator]] Zookeeper 관련 편리 프레임워크   * [[http://curator.apache.org/|Curator]] Zookeeper 관련 편리 프레임워크
 +
 +===== Curator =====
 +  * [[https://issues.apache.org/jira/browse/CURATOR-209|[CURATOR-209] Background retry falls into infinite loop of reconnection after connection loss - ASF JIRA]] Curator 무한 loop 버그. **2.10.0** 이상 버전 사용할 것.
  
 ===== 주의점 ===== ===== 주의점 =====
-  * from   * [[http://helloworld.naver.com/helloworld/textyle/294797|hello world » ZooKeeper를 활용한 Redis Cluster 관리]] 
     * 데이터의 변경이 자주 발생하는 서비스에서 ZooKeeper를 데이터 저장소로 사용하는 것은 추천하지 않는다. ZooKeeper에서 추천하는 Read : Write 비율은 10 : 1 이상이다.     * 데이터의 변경이 자주 발생하는 서비스에서 ZooKeeper를 데이터 저장소로 사용하는 것은 추천하지 않는다. ZooKeeper에서 추천하는 Read : Write 비율은 10 : 1 이상이다.
     * ZooKeeper 서버가 제대로 실행되지 않을 때가 있는데, 대부분 서버간의 데이터 불일치로 인한 데이터 동기화 실패가 그 원인이다. 주로 베타 테스트 후 운영 직전에 ZooKeeper 서버를 증설해서 사용하는데, 이럴 때 기존에 테스트했던 서버와 신규로 투입한 서버의 데이터 차이로 인해 이런 현상이 종종 발생한다. 이때는 데이터를 초기화한 후 서버를 실행하면 된다.     * ZooKeeper 서버가 제대로 실행되지 않을 때가 있는데, 대부분 서버간의 데이터 불일치로 인한 데이터 동기화 실패가 그 원인이다. 주로 베타 테스트 후 운영 직전에 ZooKeeper 서버를 증설해서 사용하는데, 이럴 때 기존에 테스트했던 서버와 신규로 투입한 서버의 데이터 차이로 인해 이런 현상이 종종 발생한다. 이때는 데이터를 초기화한 후 서버를 실행하면 된다.
줄 12: 줄 14:
     * Zookeeper GC에 대비하여 충분한 Session Timeout 을 지정해야 한다.     * Zookeeper GC에 대비하여 충분한 Session Timeout 을 지정해야 한다.
     * Swapping이 일어나지 않게 Heap 크기를 조정한다.     * Swapping이 일어나지 않게 Heap 크기를 조정한다.
-    * Zookeeper Transaction Log용으로 독립 디스크를 할당하는 것이 좋다. +    * Zookeeper Transaction Log용으로 독립 디스크를 할당하는 것이 좋다. 트랜잭션 로그는 성능에 매우 치명적인 영향을 끼친다. 
-    *  If it is important that Client and Client read the same value, Client should should call the ''sync()'' method from the ZooKeeper API method before it performs its read.+    * 클라이언트 A의 변경사항이 반영되기 전에 클라이언트 B에서 과거 데이터를 읽는 현상이 발생할 수 있다. 완벽한 동기화가 필요하다면 클라이언트 B에서 값을 읽기전에 ''sync()'' 메소드를 호출해 주어야 한다. 
 +    * Zookeeper에 대한 접속이 끊긴 상태에서 이벤트가 발생하면 재접속 후에는 그 전에 발생한 이벤트를 받지 못한다. 따라서 ''watch''를 사용할 때 매우 주의해야한다. 
 +    * Zookeeper 서버가 다운됐거나 네트워크가 끊겼을 경우에 대해 Client가 올바로 반응하는지 철저히 테스트하라. 
 +    * 서버의 서버목록과, 클라이언트의 서버 목록을 맞추라. 
 + 
 +===== Zookeeper docker ===== 
 +  * [[https://hub.docker.com/_/zookeeper/|Zookeeper Docker]] 
 +<code sh> 
 +docker run -d --restart always --name zookeeper -p 2181:2181 -p 2888:2888 -p 3888:3888 zookeeper 
 +</code>
  
 ===== zkCli ===== ===== zkCli =====
줄 41: 줄 52:
   * [[http://creatorw.tistory.com/52|: 1. 주키퍼(zookeeper) 란?]]   * [[http://creatorw.tistory.com/52|: 1. 주키퍼(zookeeper) 란?]]
   * [[https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZooKeeperPresentations|Zookeeper Presentations]]   * [[https://cwiki.apache.org/confluence/display/ZOOKEEPER/ZooKeeperPresentations|Zookeeper Presentations]]
 +  * [[http://www.slideshare.net/iFunFactory/apache-zookeeper-55966566|Apache ZooKeeper 로
 분산 서버 만들기]]
 +  * [[http://examples.javacodegeeks.com/enterprise-java/apache-hadoop/apache-hadoop-zookeeper-example/|Zookeeper Example]]
 +  * [[https://dzone.com/articles/distributed-lock-using|Distributed Lock using Zookeeper - DZone Big Data]]
java/zookeeper.1432544072.txt.gz · 마지막으로 수정됨: 2015/05/25 17:54 저자 kwon37xi