Класс Zookeeper

(PECL zookeeper >= 0.1.0)

Введение

Представляет сессию ZooKeeper.

Обзор классов

Zookeeper {
/* Методы */
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 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
/* Константы */
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

Можно использовать все вышеуказанные флаги вместе

Флаги создания ZooKeeper

Zookeeper::EPHEMERAL

Если установлен флаг Zookeeper::EPHEMERAL, узел будет автоматически удален по завершению клиентской сессии.

Zookeeper::SEQUENCE

Если установлен флаг Zookeeper::SEQUENCE, к имени пути будет добавляться уникальный номер из монотонно возрастающей последовательности. Номер из последовательности всегда имеет фиксированную длину в 10 цифр, дополненную лидирующими нулями по необходимости.

Уровень логирования 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

Некорректный статус zhandle.

Zookeeper::NEWCONFIGNOQUORUM

Кворум новой конфигурации не подключен и не синхронизирован с лидером последней подтвержденной конфигурации. Попробуйте запустить переконфигурацию после подключения и синхронизации новых серверов.

Доступно с версии ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Запрос переконфигурации во время работы другого процесса переконфигурации. В данный момент не поддерживается. Попробуйте повторить позже.

Доступно с версии ZooKeeper 3.5.0

ZooKeeper API Errors

Zookeeper::OK

Все хорошо.

Zookeeper::APIERROR

Никогда не выбрасывается сервером и может использоваться только для ограничения диапазона кодов ошибок. Все ошибки большие этой, являются ошибками API (значения меньшие данного означают системные ошибки).

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 — Возвращает идентификатор сессии клиента, действителен только в том случае, если соединения в настоящее время подключены (т.е. последнее состояние наблюдателя - 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 — Устанавливает функцию наблюдателя