le mie informazioni di contatto
Posta[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Il modello dati di ZooKeeper ha caratteristiche simili alla struttura ad albero di un file system, ma è progettato specificamente per applicazioni distribuite.
Di seguito sono riportate le caratteristiche principali delle strutture dati di ZooKeeper:
Spazio dei nomi gerarchico : ZooKeeper fornisce uno spazio dei nomi gerarchico, simile a un file system. Ogni nodo ha un percorso univoco nella gerarchia.
Nodo Z : Ogni nodo dati in ZooKeeper è chiamato ZNode (simile a un file o una directory in un file system). ZNode può avere nodi figli, formando una struttura gerarchica.
Nodo persistente : I nodi persistenti sono il tipo di nodo più comune. Una volta creati, persistono a meno che non vengano eliminati esplicitamente dal client. Anche se il servizio ZooKeeper viene riavviato, i nodi persistenti non andranno persi.
Sequenziale persistente : Il nodo sequenziale persistente è un'estensione del nodo persistente e ha natura sequenziale. Una volta creato, ZooKeeper aggiungerà un numero di sequenza gestito dal nodo principale alla fine del nome del nodo per garantire l'unicità globale. Questo tipo di nodo viene solitamente utilizzato per implementare scenari che richiedono una disposizione ordinata, come le code distribuite.
Effimero : Il ciclo di vita del nodo temporaneo è legato alla sessione client. Se una sessione client scade a causa di problemi di rete o di un arresto anomalo del client, ZooKeeper eliminerà automaticamente tutti i nodi temporanei creati dalla sessione. Questa caratteristica rende i nodi effimeri ideali per implementare meccanismi di blocco ed elezione del leader.
Sequenziale effimero : I nodi sequenziali temporanei combinano le funzionalità dei nodi temporanei e dei nodi sequenziali persistenti. Hanno una durata limitata e al momento della creazione viene loro assegnato un numero di serie. Ciò li rende molto utili quando si implementano attività di sincronizzazione e coordinamento distribuite, come l'implementazione di blocchi o altre primitive di sincronizzazione.
Nodo Contenitore (Contenitore) : Un nodo contenitore è uno ZNode speciale che non memorizza dati ma può contenere nodi figli. Tali nodi possono essere utilizzati per organizzare e strutturare i dati, in modo simile alle directory in un file system.
Nodo interno : I nodi interni sono nodi principali in ZooKeeper e possono contenere nodi secondari. Differiscono dai nodi foglia in quanto i nodi foglia vengono generalmente utilizzati per archiviare dati, mentre i nodi interni vengono utilizzati per mantenere le gerarchie.
Nodo fogliare : I nodi foglia sono i nodi finali della gerarchia ZNode e vengono solitamente utilizzati per archiviare dati. Non hanno nodi figli.
Nodo TTL (Time To Live) : I nodi TTL sono una nuova funzionalità introdotta in ZooKeeper versione 3.5.0. Consentono ai nodi di impostare un tempo di vita (TTL). Alla scadenza del TTL, se il nodo è temporaneo, verrà eliminato; se è un nodo persistente, diventerà un nodo temporaneo e verrà eliminato.
ACL (elenco di controllo degli accessi):ZNode può impostare diversi permessi di accesso per controllare quali utenti o gruppi di utenti possono leggere o modificare i nodi.
Meccanismo dell'osservatore : Il client può impostare Watcher su ZNode. Quando ZNode cambia (come modifiche dei dati, aumento o diminuzione dei nodi figlio, ecc.), tutti i client con configurato Watcher riceveranno notifiche.
persistenza : i nodi possono essere persistenti, il che significa che esistono ancora nodi persistenti anche se il servizio ZooKeeper viene riavviato. Se il nodo è temporaneo, il nodo viene automaticamente eliminato al termine della sessione client che lo ha creato.
archivio dati : Ogni ZNode può memorizzare dati, come valori stringa o dati binari. I client possono leggere e scrivere questi dati.
sequenzialità : Quando si crea un nodo sequenziale, ZooKeeper aggiunge un numero al nome del nodo, che inizia da 0 e incrementa ogni volta che viene creato un nuovo nodo. Ciò garantisce nomi di nodo univoci e può essere utilizzato per implementare l'ordinamento FIFO.
controllo della versione : Ogni ZNode ha un numero di versione Ogni volta che i dati del nodo vengono modificati, il numero di versione verrà incrementato. Questo può essere usato per verificare se un nodo è stato modificato dopo essere stato letto.