Клас Zookeeper

(PECL zookeeper >= 0.1.0)

Вступ

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

Огляд класів



    
    
     
      class 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
   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

    

    
    /* Константы */
    
     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 - Встановлює функцію спостерігача