Berbagi teknologi

Struktur data penjaga kebun binatang

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Model data ZooKeeper memiliki karakteristik yang mirip dengan struktur pohon sistem file, tetapi dirancang khusus untuk aplikasi terdistribusi.

Berikut ini adalah fitur utama struktur data ZooKeeper:

  1. Ruang nama hierarki : ZooKeeper menyediakan namespace hierarki, mirip dengan sistem file. Setiap node memiliki jalur unik dalam hierarki.

  2. Node-Z adalah singkatan dari ZNode. : Setiap node data di ZooKeeper disebut ZNode (mirip dengan file atau direktori dalam sistem file). ZNode dapat memiliki node anak, membentuk struktur hierarki.

    1. Node persisten : Node persisten adalah tipe node yang paling umum. Setelah dibuat, mereka tetap ada kecuali dihapus secara eksplisit oleh klien. Meskipun layanan ZooKeeper dimulai ulang, node persisten tidak akan hilang.

    2. Urutan Persisten : Node sekuensial persisten merupakan perpanjangan dari node persisten dan mempunyai sifat sekuensial. Saat dibuat, ZooKeeper akan menambahkan nomor urut yang dikelola oleh node induk di akhir nama node untuk memastikan keunikan global. Node semacam ini biasanya digunakan untuk mengimplementasikan skenario yang memerlukan pengaturan teratur, seperti antrian terdistribusi.

    3. Tdk kekal : Siklus hidup node sementara terikat pada sesi klien. Jika sesi klien berakhir karena masalah jaringan atau klien mogok, ZooKeeper akan secara otomatis menghapus semua node sementara yang dibuat oleh sesi tersebut. Fitur ini menjadikan node ephemeral ideal untuk menerapkan mekanisme penguncian dan pemilihan pemimpin.

    4. Urutan Singkat : Node sekuensial sementara menggabungkan fitur node sementara dan node sekuensial persisten. Mereka memiliki umur terbatas dan diberi nomor seri saat dibuat. Hal ini membuatnya sangat berguna saat mengimplementasikan tugas sinkronisasi dan koordinasi terdistribusi, seperti mengimplementasikan kunci atau primitif sinkronisasi lainnya.

    5. Node kontainer (Kontainer) : Node kontainer adalah ZNode khusus yang tidak menyimpan data tetapi dapat berisi node anak. Node tersebut dapat digunakan untuk mengatur dan menyusun data, mirip dengan direktori dalam sistem file.

    6. Node Bagian Dalam : Node internal adalah node induk di ZooKeeper dan dapat berisi node anak. Mereka berbeda dari simpul daun karena simpul daun biasanya digunakan untuk menyimpan data, sedangkan simpul internal digunakan untuk mempertahankan hierarki.

    7. Simpul Daun : Node daun adalah node akhir dari hierarki ZNode dan biasanya digunakan untuk menyimpan data. Mereka tidak memiliki node anak.

    8. Node TTL (Waktunya Untuk Hidup) : Node TTL adalah fitur baru yang diperkenalkan di ZooKeeper versi 3.5.0. Node ini memungkinkan node untuk mengatur waktu hidup (TTL). Ketika TTL habis masa berlakunya, jika node tersebut merupakan node sementara, maka node tersebut akan dihapus; jika node tersebut merupakan node persisten, maka node tersebut akan menjadi node sementara dan dihapus.

  3. ACL (Daftar Kontrol Akses):ZNode dapat mengatur izin akses yang berbeda untuk mengontrol pengguna atau grup pengguna mana yang dapat membaca atau memodifikasi node.

  4. Mekanisme pengamat : Klien dapat mengatur Watcher di ZNode. Ketika ZNode berubah (seperti perubahan data, node anak bertambah atau berkurang, dll.), semua klien dengan pengaturan Watcher akan menerima notifikasi.

  5. kegigihan : Node bisa bersifat persisten, artinya node persisten tetap ada meskipun layanan ZooKeeper dimulai ulang. Jika node bersifat sementara, node tersebut secara otomatis dihapus ketika sesi klien yang membuatnya berakhir.

  6. penyimpanan data : Setiap ZNode dapat menyimpan data, seperti nilai string atau data biner. Klien dapat membaca dan menulis data ini.

  7. urutan : Saat membuat simpul berurutan, ZooKeeper menambahkan nomor ke nama simpul, yang dimulai dari 0 dan bertambah setiap kali simpul baru dibuat. Ini menjamin nama node yang unik dan dapat digunakan untuk mengimplementasikan pemesanan FIFO.

  8. kontrol versi : Setiap ZNode memiliki nomor versi. Setiap kali data node diubah, nomor versi akan bertambah. Ini dapat digunakan untuk memeriksa apakah suatu node telah dimodifikasi setelah dibaca.