ZooKeeper Zookeeper 클래스
(PECL zookeeper >= 0.1.0)
소개
ZooKeeper 세션을 나타냅니다.
클래스 개요
class Zookeeper {
/* Methods */
public __construct(string $host = '', callable $watcher_cb = null, int $recv_timeout = 10000)
public addAuth(string $scheme, string $cert, callable $completion_cb = null): bool
public close(): void
public connect(string $host, callable $watcher_cb = null, int $recv_timeout = 10000): void
public create(
string $path,
string $value,
array $acls,
int $flags = null
): string
public delete(string $path, int $version = -1): bool
public exists(string $path, callable $watcher_cb = null): array
public get(
string $path,
callable $watcher_cb = null,
array &$stat = null,
int $max_size = 0
): string
public getAcl(string $path): array
public getChildren(string $path, callable $watcher_cb = null): array
public getClientId(): int
public getConfig(): ZookeeperConfig
public getRecvTimeout(): int
public getState(): int
public isRecoverable(): bool
public set(
string $path,
string $value,
int $version = -1,
array &$stat = null
): bool
public setAcl(string $path, int $version, array $acl): bool
public static setDebugLevel(int $logLevel): bool
public static setDeterministicConnOrder(bool $yesOrNo): bool
public setLogStream(resource $stream): bool
public setWatcher(callable $watcher_cb): bool
/* Constants */
const int PERM_READ = 1;
const int PERM_WRITE = 2;
const int PERM_CREATE = 4;
const int PERM_DELETE = 8;
const int PERM_ADMIN = 16;
const int PERM_ALL = 31;
const int EPHEMERAL = 1;
const int SEQUENCE = 2;
const int LOG_LEVEL_ERROR = 1;
const int LOG_LEVEL_WARN = 2;
const int LOG_LEVEL_INFO = 3;
const int LOG_LEVEL_DEBUG = 4;
const int EXPIRED_SESSION_STATE = -112;
const int AUTH_FAILED_STATE = -113;
const int CONNECTING_STATE = 1;
const int ASSOCIATING_STATE = 2;
const int CONNECTED_STATE = 3;
const int READONLY_STATE = 5;
const int NOTCONNECTED_STATE = 999;
const int CREATED_EVENT = 1;
const int DELETED_EVENT = 2;
const int CHANGED_EVENT = 3;
const int CHILD_EVENT = 4;
const int SESSION_EVENT = -1;
const int NOTWATCHING_EVENT = -2;
const int SYSTEMERROR = -1;
const int RUNTIMEINCONSISTENCY = -2;
const int DATAINCONSISTENCY = -3;
const int CONNECTIONLOSS = -4;
const int MARSHALLINGERROR = -5;
const int UNIMPLEMENTED = -6;
const int OPERATIONTIMEOUT = -7;
const int BADARGUMENTS = -8;
const int INVALIDSTATE = -9;
const int NEWCONFIGNOQUORUM = -13;
const int RECONFIGINPROGRESS = -14;
const int OK = 0;
const int APIERROR = -100;
const int NONODE = -101;
const int NOAUTH = -102;
const int BADVERSION = -103;
const int NOCHILDRENFOREPHEMERALS = -108;
const int NODEEXISTS = -110;
const int NOTEMPTY = -111;
const int SESSIONEXPIRED = -112;
const int INVALIDCALLBACK = -113;
const int INVALIDACL = -114;
const int AUTHFAILED = -115;
const int CLOSING = -116;
const int NOTHING = -117;
const int SESSIONMOVED = -118;
const int NOTREADONLY = -119;
const int EPHEMERALONLOCALSESSION = -120;
const int NOWATCHER = -121;
const int RECONFIGDISABLED = -122;
}
미리 정의된 상수
ZooKeeper 권한
Zookeeper::PERM_READ
- 노드 값을 읽고 자식을 나열할 수 있습니다.
Zookeeper::PERM_WRITE
- 노드 값을 설정할 수 있습니다.
Zookeeper::PERM_CREATE
- 자식을 만들 수 있다
Zookeeper::PERM_DELETE
- 자식를 삭제할 수 있습니다
Zookeeper::PERM_ADMIN
- set_acl()을 실행할 수 있습니다.
Zookeeper::PERM_ALL
- 위의 모든 플래그를 함께 ORd
ZooKeeper 생성 플래그
Zookeeper::EPHEMERAL
- Zookeeper::EPHEMERAL 플래그가 설정되면 클라이언트 세션이 사라지면 노드가 자동으로 제거됩니다.
Zookeeper::SEQUENCE
- Zookeeper::SEQUENCE 플래그가 설정되면 단조 증가하는 고유한 시퀀스 번호가 경로 이름에 추가됩니다. 시퀀스 번호는 항상 10자리의 고정 길이이며 0으로 채워집니다.
ZooKeeper 로그 수준
Zookeeper::LOG_LEVEL_ERROR
- 오류 메시지만 출력
Zookeeper::LOG_LEVEL_WARN
- 오류/경고 출력
Zookeeper::LOG_LEVEL_INFO
- 오류/경고 외에 큰 작업 메시지를 출력합니다.
Zookeeper::LOG_LEVEL_DEBUG
- 모두 출력
ZooKeeper 상태
Zookeeper::EXPIRED_SESSION_STATE
- 연결되었지만 세션이 만료됨
Zookeeper::AUTH_FAILED_STATE
- 연결되었지만 인증 실패
Zookeeper::CONNECTING_STATE
- 연결 중
Zookeeper::ASSOCIATING_STATE
- 연결
Zookeeper::CONNECTED_STATE
- 연결됨
Zookeeper::READONLY_STATE
- TODO: 이 확장 기능을 개선하는 데 도움을 주세요.
Zookeeper::NOTCONNECTED_STATE
- 연결에 실패
ZooKeeper 시계 유형
Zookeeper::CREATED_EVENT
- 노드가 생성되었습니다.
이것은 존재하지 않는 노드의 감시에 의해서만 생성됩니다. 이 시계는 Zookeeper::exists를 사용하여 설정됩니다.
Zookeeper::DELETED_EVENT
- 노드가 삭제되었습니다.
이것은 노드의 감시에 의해서만 생성됩니다. 이러한 시계는 Zookeeper::exists 및 Zookeeper::get을 사용하여 설정됩니다.
Zookeeper::CHANGED_EVENT
- 노드가 변경되었습니다.
이것은 노드의 감시에 의해서만 생성됩니다. 이러한 시계는 Zookeeper::exists 및 Zookeeper::get을 사용하여 설정됩니다.
Zookeeper::CHILD_EVENT
- 자식 목록에 발생한 변경 사항
이것은 노드의 자식 목록에 있는 감시에 의해서만 생성됩니다. 이 시계는 Zookeeper::getChildren을 사용하여 설정됩니다.
Zookeeper::SESSION_EVENT
- 세션이 손실되었습니다.
클라이언트가 연결이 끊기거나 서버와 다시 연결할 때 생성됩니다.
Zookeeper::NOTWATCHING_EVENT
- 시계가 제거되었습니다.
이것은 서버가 어떤 이유로(아마도 리소스 제약) 더 이상 클라이언트에 대한 노드를 감시하지 않을 때 생성됩니다.
ZooKeeper 시스템 및 서버 측 오류
Zookeeper::SYSTEMERROR
- 이것은 서버에서 발생하지 않으며 범위를 나타내는 것 외에는 사용해서는 안 됩니다. 특히 이 값보다 크고 Zookeeper::APIERROR보다 작은 오류 코드는 시스템 오류입니다.
Zookeeper::RUNTIMEINCONSISTENCY
- 런타임 불일치가 발견되었습니다.
Zookeeper::DATAINCONSISTENCY
- 데이터 불일치가 발견되었습니다.
Zookeeper::CONNECTIONLOSS
- 서버에 대한 연결이 끊어졌습니다.
Zookeeper::MARSHALLINGERROR
- 데이터를 마샬링하거나 언마샬링하는 동안 오류가 발생했습니다.
Zookeeper::UNIMPLEMENTED
- 작업이 구현되지 않았습니다.
Zookeeper::OPERATIONTIMEOUT
- 작업 시간이 초과되었습니다.
Zookeeper::BADARGUMENTS
- 잘못된 인수입니다.
Zookeeper::INVALIDSTATE
- Invliad zhandle 상태입니다.
Zookeeper::NEWCONFIGNOQUORUM
- 새 구성의 쿼럼이 연결되어 있지 않고 마지막으로 커밋된 구성의 리더와 최신 상태입니다. 새 서버가 연결되고 동기화된 후 재구성을 호출해 보십시오.
ZooKeeper 3.5.0부터 사용 가능
Zookeeper::RECONFIGINPROGRESS
- 다른 재구성이 현재 진행 중인 동안 재구성이 요청되었습니다. 이것은 현재 지원되지 않습니다. 다시 시도하십시오.
ZooKeeper 3.5.0부터 사용 가능
ZooKeeper API 오류
Zookeeper::OK
- 모든 것이 정상입니다.
Zookeeper::APIERROR
- 이것은 서버에서 발생하지 않으며 범위를 나타내는 것 외에는 사용해서는 안 됩니다. 특히 이 값보다 큰 오류 코드는 API 오류입니다(이보다 작은 값은 Zookeeper::SYSTEMERROR를 나타냄).
Zookeeper::NONODE
- 노드가 존재하지 않습니다.
Zookeeper::NOAUTH
- 인증되지 않았습니다.
Zookeeper::BADVERSION
- 버전 충돌.
Zookeeper::NOCHILDRENFOREPHEMERALS
- 임시 노드에는 자식이 없을 수 있습니다.
Zookeeper::NODEEXISTS
- 노드가 이미 있습니다.
Zookeeper::NOTEMPTY
- 노드에 자식이 있습니다.
Zookeeper::SESSIONEXPIRED
- 세션이 서버에 의해 만료되었습니다.
Zookeeper::INVALIDCALLBACK
- 잘못된 콜백이 지정되었습니다.
Zookeeper::INVALIDACL
- 잘못된 ACL이 지정되었습니다.
Zookeeper::AUTHFAILED
- 클라이언트 인증에 실패했습니다.
Zookeeper::CLOSING
- ZooKeeper가 문을 닫습니다.
Zookeeper::NOTHING
- (오류 아님) 처리할 서버 응답이 없습니다.
Zookeeper::SESSIONMOVED
- 세션이 다른 서버로 이동되었으므로 작업이 무시됩니다.
Zookeeper::NOTREADONLY
- 상태 변경 요청은 읽기 전용 서버로 전달됩니다.
Zookeeper::EPHEMERALONLOCALSESSION
- 로컬 세션에서 임시 노드 생성을 시도합니다.
Zookeeper::NOWATCHER
- 감시자를 찾을 수 없습니다.
Zookeeper::RECONFIGDISABLED
- 재구성 기능이 비활성화된 경우 재구성 작업을 수행하려고 시도합니다.
목차
- Zookeeper::addAuth — 애플리케이션 자격 증명 지정
- Zookeeper::close — zookeeper 핸들을 닫고 리소스를 확보하십시오.
- Zookeeper::connect — zookeeper와의 통신을 위한 핸들 생성
- Zookeeper::__construct — zookeeper와의 통신을 위한 핸들 생성
- Zookeeper::create — 동기식으로 노드 생성
- Zookeeper::delete — Zookeeper에서 노드를 동기적으로 삭제
- Zookeeper::exists — Zookeeper에 노드가 있는지 동기적으로 확인
- Zookeeper::get — 노드와 연결된 데이터를 동기적으로 가져옵니다.
- Zookeeper::getAcl — 노드와 연결된 acl을 동기적으로 가져옵니다.
- Zookeeper::getChildren — 노드의 자식을 동기적으로 나열합니다.
- Zookeeper::getClientId — 연결이 현재 연결되어 있는 경우에만 유효한 클라이언트 세션 ID를 반환합니다(즉, 마지막 감시자 상태가 ZOO_CONNECTED_STATE임).
- Zookeeper::getConfig — ZookeeperConfig 인스턴스 가져오기
- Zookeeper::getRecvTimeout — 이 세션에 대한 시간 초과를 반환합니다. 연결이 현재 연결된 경우에만 유효합니다(예: 마지막 감시자 상태가 ZOO_CONNECTED_STATE임). 이 값은 서버 재연결 후 변경될 수 있습니다.
- Zookeeper::getState — zookeeper 연결 상태 가져오기
- Zookeeper::isRecoverable — 현재 zookeeper 연결 상태를 복구할 수 있는지 확인
- Zookeeper::set — 노드와 관련된 데이터를 설정합니다.
- Zookeeper::setAcl — 노드와 연결된 acl을 동기적으로 설정합니다.
- Zookeeper::setDebugLevel — 라이브러리의 디버깅 수준을 설정합니다.
- Zookeeper::setDeterministicConnOrder — 쿼럼 끝점 순서 무작위화 활성화/비활성화
- Zookeeper::setLogStream — 로깅을 위해 라이브러리에서 사용할 스트림을 설정합니다.
- Zookeeper::setWatcher — 감시자 함수 설정