PHP Conference Nagoya 2025

La clase Zookeeper

(PECL zookeeper >= 0.1.0)

Introducción

Representa la sesión de ZooKeeper.

Sinopsis de la Clase

class Zookeeper {
/* Métodos */
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 getState(): int
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
/* Constantes */
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 AUTH_FAILED_STATE = -113;
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 SYSTEMERROR = -1;
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 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 NOWATCHER = -121;
const int RECONFIGDISABLED = -122;
}

Constantes predefinidas

Permisos ZooKeeper

Zookeeper::PERM_READ

Puede leer el valor de los nodos y enumerar sus hijos

Zookeeper::PERM_WRITE

Puede establecer el valor de los nodos

Zookeeper::PERM_CREATE

Puede crear hijos

Zookeeper::PERM_DELETE

Puede eliminar hijos

Zookeeper::PERM_ADMIN

Puede ejecutar set_acl()

Zookeeper::PERM_ALL

Todas las flags anteriores ORd together

ZooKeeper Create Flags

Zookeeper::EPHEMERAL

Si la flag Zookeeper::EPHEMERAL es establecida, el nodo se eliminará automáticamente si la sesión del cliente desaparece.

Zookeeper::SEQUENCE

Si la flag Zookeeper::SEQUENCE flag es establecida, un número de secuencia ascendente único se añade al nombre de la ruta. El número de secuencia es siempre de longitud fija de 10 dígitos, 0 relleno.

ZooKeeper Log Levels

Zookeeper::LOG_LEVEL_ERROR

Emite sólo mensajes de error

Zookeeper::LOG_LEVEL_WARN

Emite errores/advertencias

Zookeeper::LOG_LEVEL_INFO

Emite grandes mensajes de acción además de errores/advertencias

Zookeeper::LOG_LEVEL_DEBUG

Emite todo

ZooKeeper States

Zookeeper::EXPIRED_SESSION_STATE

Conectado pero la sesión expiró

Zookeeper::AUTH_FAILED_STATE

Conectado pero la autentificación falló

Zookeeper::CONNECTING_STATE

Conectando

Zookeeper::ASSOCIATING_STATE

Asociando

Zookeeper::CONNECTED_STATE

Conectado

Zookeeper::READONLY_STATE

TODO: Ayúdanos a mejorar esta extensión.

Zookeeper::NOTCONNECTED_STATE

La conexión falló

Tipos de relojes ZooKeeper

Zookeeper::CREATED_EVENT

Se ha creado un nodo

Esto sólo se genera por los relojes en nodos inexistentes. Estos relojes se ajustan usando Zookeeper::exists.

Zookeeper::DELETED_EVENT

Se ha eliminado un nodo

Esto sólo se genera por los relojes de los nodos. Estos relojes se ajustan usando Zookeeper::exists and Zookeeper::get.

Zookeeper::CHANGED_EVENT

Un nodo ha cambiado

Esto sólo lo generan los relojes de los nodos. Estos relojes se ajustan usando Zookeeper::exists and Zookeeper::get.

Zookeeper::CHILD_EVENT

Un cambio como el ocurrido en la lista de hijos

Esto sólo se genera por los relojes en la lista de hijos de un nodo. Estos relojes se ajustan usando Zookeeper::getChildren.

Zookeeper::SESSION_EVENT

Se ha perdido una sesión

Esto se genera cuando un cliente pierde el contacto o se reconecta con un servidor.

Zookeeper::NOTWATCHING_EVENT

Se ha quitado un reloj

Esto se genera cuando el servidor, por alguna razón, probablemente una limitación de recursos, ya no vigila un nodo para un cliente.

Errores del sistema y del servidor ZooKeeper

Zookeeper::SYSTEMERROR

Esto nunca es lanzado por el servidor, no debe ser usado más que para indicar un rango. Específicamente códigos de error mayores que este valor, pero menores que Zookeeper::APIERROR, son errores del sistema.

Zookeeper::RUNTIMEINCONSISTENCY

Se encontró una inconsistencia en el tiempo de ejecución.

Zookeeper::DATAINCONSISTENCY

Se encontró una inconsistencia en los datos.

Zookeeper::CONNECTIONLOSS

Se ha perdido la conexión con el servidor.

Zookeeper::MARSHALLINGERROR

Error al ordenar o desordenar los datos.

Zookeeper::UNIMPLEMENTED

La operación no se ha llevado a cabo.

Zookeeper::OPERATIONTIMEOUT

Tiempo de espera de la operación.

Zookeeper::BADARGUMENTS

Argumentos inválidos.

Zookeeper::INVALIDSTATE

Estado de zhandle inválido.

Zookeeper::NEWCONFIGNOQUORUM

Ningún grupo de nueva configuración está conectado y actualizado con el líder de la última configuración realizada. - intente invocar la reconfiguración después de que los nuevos servidores estén conectados y sincronizados.

Disponible a partir de ZooKeeper 3.5.0

Zookeeper::RECONFIGINPROGRESS

Se solicita una reconfiguración mientras se está llevando a cabo otra reconfiguración. Esto no se soporta actualmente. Por favor, vuelva a intentarlo..

Disponible a partir de ZooKeeper 3.5.0

Errores de la API ZooKeeper

Zookeeper::OK

Todo está bien.

Zookeeper::APIERROR

Esto nunca es lanzado por el servidor, no debe usarse más que para indicar un rango. Específicamente los códigos de error mayores que este valor son errores de la API (mientras que los valores inferiores a éste indican una Zookeeper::SYSTEMERROR).

Zookeeper::NONODE

El nodo no existe.

Zookeeper::NOAUTH

No está autentificado.

Zookeeper::BADVERSION

Conflicto de versiones.

Zookeeper::NOCHILDRENFOREPHEMERALS

Los nodos efímeros pueden no tener hijos.

Zookeeper::NODEEXISTS

El nodo ya existe.

Zookeeper::NOTEMPTY

El nodo tiene hijos.

Zookeeper::SESSIONEXPIRED

La sesión ha expirado por el servidor.

Zookeeper::INVALIDCALLBACK

Se especificó una devolución de llamada inválida.

Zookeeper::INVALIDACL

Se especificó un LCA inválido.

Zookeeper::AUTHFAILED

La autentificación del cliente falló.

Zookeeper::CLOSING

ZooKeeper está cerrando.

Zookeeper::NOTHING

(no error) No hay respuestas del servidor al proceso.

Zookeeper::SESSIONMOVED

La sesión se movió a otro servidor, así que la operación es ignorada.

Zookeeper::NOTREADONLY

La solicitud de cambio de estado se pasa al servidor de sólo lectura.

Zookeeper::EPHEMERALONLOCALSESSION

Intentar crear un nodo efímero en una sesión local.

Zookeeper::NOWATCHER

El observador no pudo ser encontrado.

Zookeeper::RECONFIGDISABLED

Intentar realizar una operación de reconfiguración cuando la función de reconfiguración está desactivada.

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top