* zookeeper zoo.cfg


Minimum Configuration

1. 주요 설정 항목


항목

 설명

 clientPort

 클라이언트 접속을 대기하는 포트. 즉, 클라이언트가 연결을 시도하는 포트입니다.

 dataDir

 ZooKeeper가 메모리 내 데이터베이스 스냅 샷을 저장할 위치이며, 특별히 지정하지 않는 한 데이터베이스 업데이트에 대한 트랜잭션 로그입니다.

 * 트랜잭션 로그를 어디에 두어야하는지주의하십시오. 전용 트랜잭션 로그 장치는 일관된 우수한 성능의 핵심입니다. 로그를 사용중인 장치에두면 성능에 나쁜 영향을줍니다.

 tickTime

 ZooKeeper가 사용하는 기본 시간 단위 인 단일 틱의 길이 (밀리 초 단위). 하트 비트 및 제한 시간을 조정하는 데 사용됩니다. 예를 들어, 최소 세션 타임 아웃은 2 tick입니다.


Advanced Configuration

2. 고급 구성을 위한 설정 항목
이하 구성 설정은 선택 사항입니다. ZooKeeper 서버의 동작을 더욱 세밀하게 조정할 수 있습니다. 일부는 Java 시스템 속성 (일반적으로 zookeeper.keyword 형식)을 사용하여 설정할 수도 있습니다. 사용 가능한 경우에 정확한 시스템 속성은 다음과 같습니다.


항목 

설정

dataLogDir (Java 시스템 속성 없음)

이 옵션은 머신이 트랜잭션 로그를 dataDir이 아닌 dataLogDir에 기록하도록 합니다. 이를 통해 전용 로그 장치를 사용할 수 있으며 로깅과 스냅 샷간의 경쟁을 피할 수 있습니다.

* 전용 로그 장치가 있으면 처리량과 안정적인 대기 시간에 큰 영향을 미칩니다. 로그 장치를 전용으로 지정하고 해당 장치의 디렉터리를 가리 키도록 dataLogDir을 설정 한 다음 dataDir을 해당 장치에 없는 디렉터리로 지정해야 합니다.

 globalOutstandingLimit (Java 시스템 속성: zookeeper.globalOutstandingLimit.)

클라이언트들은, 보통 이상으로 다수의 클라이언트가 있다면, ZooKeeper가 처리 할 수있는 것보다 빠르게 요청을 제출할 수 있습니다. ZooKeeper가 대기중인 요청으로 인해 메모리 부족을 방지하기 위해 ZooKeeper는 클라이언트에 globalOutstandingLimit 미해결 요청이 시스템에 없도록 제한합니다. 기본 제한은 1,000입니다.

 preAllocSize (Java 시스템 등록 정보: zookeeper.preAllocSize)

검색을 피하기 위해 ZooKeeper는 preAllocSize 킬로바이트 블록 단위로 트랜잭션 로그 파일에 공간을 할당합니다. 기본 블록 크기는 64M입니다. 블록 크기를 변경하는 한 가지 이유는 스냅 샷을 더 자주 사용하는 경우 블록 크기를 줄이는 것입니다. (snapCount 참조).

snapCount (Java 시스템 등록 정보 : zookeeper.snapCount)

ZooKeeper는 트랜잭션을 트랜잭션 로그에 기록합니다. snapCount 트랜잭션이 로그 파일에 기록된 후 스냅 샷이 시작되고 새 트랜잭션 로그 파일이 작성됩니다. 기본 snapCount는 100,000입니다.

traceFile (Java 시스템 속성: requestTraceFile) 

이 옵션이 정의되면 요청은 traceFile.year.month.day라는 추적 파일에 기록됩니다. 이 옵션을 사용하면 유용한 디버깅 정보를 얻을 수 있지만 성능에는 영향을줍니다. (참고 : 시스템 속성에는 사육사 접두어가 없으며 구성 변수 이름은 시스템 속성과 다릅니다. 예 - 일관성이없고 성가 시게됩니다.)

 maxClientCnxns (Java 시스템 속성 없음)

IP 주소로 식별되는 단일 클라이언트가 ZooKeeper 앙상블의 단일 구성원으로 만들 수 있는(소켓 수준으로) 동시 연결 수를 제한합니다. 이것은 파일 디스크립터 소진을 포함하여 특정 클래스의 DoS 공격을 방지하는 데 사용됩니다. 기본값은 60입니다. 이 값을 0으로 설정하면 동시 연결의 제한이 완전히 제거됩니다.

clientPortAddress

3.3.0의 새로운 점 : 클라이언트 연결을 대기하는 주소 (ipv4, ipv6 또는 hostname). 즉, 클라이언트가 연결을 시도하는 주소입니다. 이것은 선택 사항입니다. 기본적으로 서버의 어떠한 주소 혹은 인터페이스 그리고 NIC에 대한 clientPort의 모든 연결이 허용되도록 바인딩합니다.

minSessionTimeout (Java 시스템 속성 없음)

 3.3.0의 새로운 기능 : 서버가 클라이언트의 협상을 허용하는 최소 세션 시간 초과 (밀리 초)입니다. tickTime의 2배가 기본값입니다.

maxSessionTimeout (Java 시스템 특성 없음)

3.3.0의 새로운 기능 : 서버가 클라이언트의 협상을 허용하는 최대 세션 시간 초과 (밀리 초)입니다. 기본값은 tickTime의 20배입니다.

 fsync.warningthresholdms (Java 시스템 속성: fsync.warningthresholdms)

3.3.4의 새로운 사항 : 트랜잭션 로그(WAL)의 fsync가 이 값보다 오래 걸릴 때마다 경고 메시지가 로그에 출력됩니다. 값은 밀리 초 단위로 지정되며 기본값은 1000입니다. 이 값은 시스템 속성으로만 설정할 수 있습니다.

autopurge.snapRetainCount (Java 시스템 속성 없음)

3.4.0의 새로운 기능 : 활성화되면 ZooKeeper 자동 제거 기능은 autopurge.snapRetainCount 가장 최근의 스냅 샷과 해당 트랜잭션 로그를 각각 dataDir 및 dataLogDir에 유지하고 나머지는 삭제합니다. 기본값은 3입니다. 최소값은 3입니다.

autopurge.purgeInterval (Java 시스템 속성 없음)

3.4.0의 새로운 기능 : 제거 작업을 트리거해야 하는 시간 간격. 자동 제거를 사용하려면 양의 정수 (1 이상)로 설정하십시오. 기본값은 0입니다.

syncEnabled (Java 시스템 속성: zookeeper.observer.syncEnabled) 

3.4.6, 3.5.0의 새로운 기능 : 관찰자는 기본적으로 트랜잭션과 스냅 샷을 디스크에 기록합니다. 이렇게 하면 재시작 시 옵저버의 복구 시간이 단축됩니다. 이 기능을 사용하지 않으려면 "false"로 설정하십시오. 기본값은 "true"입니다.


Cluster Options

추후 추가


Authentication & Authorization Options

추후 추가


Experimental Options/Features

추후 추가


Unsafe Options

추후 추가



참조: https://zookeeper.apache.org/doc/r3.4.8/zookeeperAdmin.html#sc_configuration



+ Recent posts