Класс Zookeeper

(PECL zookeeper >= 0.1.0)

Введение

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

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

classZookeeper {
public__construct(string$host = '', callable$watcher_cb = null, int$recv_timeout = 10000)
publicaddAuth(string$scheme, string$cert, callable$completion_cb = null): bool
publicclose(): void
publicconnect(string$host, callable$watcher_cb = null, int$recv_timeout = 10000): void
publiccreate(
    string$path,
    string$value,
    array$acls,
    int$flags = null
): string
publicdelete(string$path, int$version = -1): bool
publicexists(string$path, callable$watcher_cb = null): array
publicget(
    string$path,
    callable$watcher_cb = null,
    array&$stat = null,
    int$max_size = 0
): string
publicgetAcl(string$path): array
publicgetChildren(string$path, callable$watcher_cb = null): array
publicgetClientId(): int
publicgetState(): int
publicset(
    string$path,
    string$value,
    int$version = -1,
    array&$stat = null
): bool
publicsetAcl(string$path, int$version, array$acl): bool
publicstaticsetDebugLevel(int$logLevel): bool
publicstaticsetDeterministicConnOrder(bool$yesOrNo): bool
publicsetLogStream(resource$stream): bool
publicsetWatcher(callable$watcher_cb): bool
constintPERM_READ = 1;
constintPERM_WRITE = 2;
constintPERM_CREATE = 4;
constintPERM_DELETE = 8;
constintPERM_ADMIN = 16;
constintPERM_ALL = 31;
constintEPHEMERAL = 1;
constintSEQUENCE = 2;
constintCHILD_EVENT = 4;
constintSESSION_EVENT = -1;
constintSYSTEMERROR = -1;
constintUNIMPLEMENTED = -6;
constintBADARGUMENTS = -8;
constintINVALIDSTATE = -9;
constintOK = 0;
constintAPIERROR = -100;
constintNONODE = -101;
constintNOAUTH = -102;
constintBADVERSION = -103;
constintNODEEXISTS = -110;
constintNOTEMPTY = -111;
constintSESSIONEXPIRED = -112;
constintINVALIDCALLBACK = -113;
constintINVALIDACL = -114;
constintAUTHFAILED = -115;
constintCLOSING = -116;
constintNOTHING = -117;
constintSESSIONMOVED = -118;
constintNOTREADONLY = -119;
constintNOWATCHER = -121;
constintRECONFIGDISABLED = -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 — Устанавливает функцию наблюдателя
To Top