2024-07-08
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
ZooKeeper adalah layanan koordinasi terdistribusi dengan ketersediaan tinggi yang banyak digunakan dalam sistem terdistribusi untuk memecahkan masalah konsistensi sistem terdistribusi. Berikut ini akan diperkenalkan prinsip-prinsip dasar ZooKeeper secara rinci, termasuk arsitektur, model data, mekanisme inti, dan protokol konsistensi.
ZooKeeper mengadopsi arsitektur master-slave, yang biasanya terdiri dari seorang Leader dan beberapa Follower. Terdapat juga node Observer sebagai node non-voting untuk berbagi tekanan permintaan baca.
ZooKeeper menyimpan data dalam struktur pohon yang mirip dengan sistem file, dan setiap node disebut znode.
Sesi dibuat antara setiap klien dan cluster ZooKeeper untuk mempertahankan status koneksi dan mengelola node sementara. ZooKeeper mendeteksi status koneksi klien melalui mekanisme detak jantung. Jika tidak ada detak jantung yang diterima dalam jangka waktu tertentu, sesi dianggap terputus.
Untuk memastikan konsistensi data setiap node, ZooKeeper mengadopsi mekanisme sinkronisasi data. Ketika node Leader memproses permintaan tulis, ia akan mengirimkan operasi perubahan ke semua node Follower. Node Follower akan mengkonfirmasi setelah menerima operasi perubahan, dan node Leader pada akhirnya akan memutuskan apakah operasi perubahan berhasil.
ZooKeeper mendukung mekanisme Watch. Klien dapat mendaftarkan Watch pada znode yang ditentukan. Ketika data atau node anak dari znode berubah, ZooKeeper akan memberi tahu klien.
ZooKeeper menggunakan protokol konsistensi yang disebut ZAB (Zookeeper Atomic Broadcast) untuk memastikan konsistensi data. ZAB terdiri dari dua fase yaitu fase pemilu dan fase penyiaran.
Ketika cluster ZooKeeper dimulai, atau node Pemimpin gagal, pemilihan diperlukan untuk menentukan Pemimpin baru. Fase pemilu pada dasarnya dibagi menjadi beberapa langkah berikut:
Setelah Leader ditentukan, fase siaran masuk. Leader bertanggung jawab untuk memproses permintaan tulis klien dan menyiarkan operasi perubahan ke semua node Follower. Langkah-langkah spesifiknya adalah sebagai berikut:
Berikut ini adalah contoh sederhana penggunaan ZooKeeper, yang menunjukkan cara membuat node, membaca data node, dan mendaftarkan Watch.
ada pom.xml
Perkenalkan ketergantungan klien ZooKeeper.
xmlSalin kode