minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
O modelo de dados do ZooKeeper possui características semelhantes a uma estrutura de árvore de sistema de arquivos, mas é projetado especificamente para aplicativos distribuídos.
A seguir estão os principais recursos das estruturas de dados do ZooKeeper:
Namespace hierárquico : o ZooKeeper fornece um namespace hierárquico, semelhante a um sistema de arquivos. Cada nó possui um caminho exclusivo na hierarquia.
Nó Z : Cada nó de dados no ZooKeeper é chamado de ZNode (semelhante a um arquivo ou diretório em um sistema de arquivos). ZNode pode ter nós filhos, formando uma estrutura hierárquica.
Nó persistente : nós persistentes são o tipo de nó mais comum. Uma vez criados, eles persistem, a menos que sejam explicitamente excluídos pelo cliente. Mesmo que o serviço ZooKeeper seja reiniciado, os nós persistentes não serão perdidos.
Sequencial Persistente : O nó sequencial persistente é uma extensão do nó persistente e possui natureza sequencial. Quando criado, o ZooKeeper anexará um número de sequência mantido pelo nó pai ao final do nome do nó para garantir a exclusividade global. Esse tipo de nó geralmente é usado para implementar cenários que exigem organização ordenada, como filas distribuídas.
Efêmero : o ciclo de vida do nó temporário está vinculado à sessão do cliente. Se uma sessão do cliente expirar devido a problemas de rede ou falha do cliente, o ZooKeeper excluirá automaticamente todos os nós temporários criados pela sessão. Esse recurso torna os nós efêmeros ideais para implementar mecanismos de bloqueio e eleição de líderes.
Sequencial Efêmero : nós sequenciais temporários combinam os recursos de nós temporários e nós sequenciais persistentes. Eles têm uma vida útil limitada e recebem um número de série quando são criados. Isso os torna muito úteis na implementação de tarefas distribuídas de sincronização e coordenação, como implementação de bloqueios ou outras primitivas de sincronização.
Nó de contêiner (contêiner) : um nó contêiner é um ZNode especial que não armazena dados, mas pode conter nós filhos. Esses nós podem ser usados para organizar e estruturar dados, semelhante a diretórios em um sistema de arquivos.
Nó Interior : os nós internos são nós pais no ZooKeeper e podem conter nós filhos. Eles diferem dos nós folha porque os nós folha são normalmente usados para armazenar dados, enquanto os nós internos são usados para manter hierarquias.
Nó da folha : os nós folha são os nós finais da hierarquia ZNode e geralmente são usados para armazenar dados. Eles não têm nós filhos.
Nó TTL (tempo de vida) : os nós TTL são um novo recurso introduzido no ZooKeeper versão 3.5.0. Eles permitem que os nós definam um tempo de vida (TTL). Quando o TTL expirar, se o nó for temporário, será excluído; se for um nó persistente, se tornará um nó temporário e será excluído.
ACL (lista de controle de acesso):ZNode pode definir diferentes permissões de acesso para controlar quais usuários ou grupos de usuários podem ler ou modificar nós.
Mecanismo de observador : O cliente pode definir o Watcher no ZNode. Quando o ZNode muda (como alterações de dados, nós filhos aumentam ou diminuem, etc.), todos os clientes com o Watcher configurado receberão notificações.
persistência : os nós podem ser persistentes, o que significa que os nós persistentes ainda existem mesmo se o serviço ZooKeeper for reiniciado. Se o nó for temporário, ele será excluído automaticamente quando a sessão do cliente que o criou terminar.
armazenamento de dados : Cada ZNode pode armazenar dados, como valores de string ou dados binários. Os clientes podem ler e gravar esses dados.
sequencialidade : ao criar um nó sequencial, o ZooKeeper anexa um número ao nome do nó, que começa em 0 e aumenta cada vez que um novo nó é criado. Isso garante nomes de nós exclusivos e pode ser usado para implementar a ordem FIFO.
controle de versão : Cada ZNode possui um número de versão Sempre que os dados do nó forem modificados, o número da versão será incrementado. Isso pode ser usado para verificar se um nó foi modificado após ser lido.