Apache ZooKeeper — dastlab Yahoo kompaniyasida ishlab chiqilgan va keyinchalik Apache Software Foundation’ga topshirilgan, taqsimlangan tizimlar uchun muvofiqlashtirish (coordination) xizmati. Uning vazifasi — bir nechta serverdan tashkil topgan tizimlarda umumiy holatni izchil saqlash va sinxronlashtirish.
Taqsimlangan tizimlar uchun muvofiqlashtirish xizmati
Ko’plab serverdan tashkil topgan taqsimlangan tizimda barcha tugunlarning bir xil konfiguratsiyaga ega bo’lishi, kim “lider” ekanligini bilishi yoki resurslarga bir vaqtning o’zida kirishning oldini olish kabi masalalarni har bir tizim o’zi qayta-qayta hal qilishi noo’rin bo’lardi. ZooKeeper aynan shu umumiy muammolarni markazlashgan, ishonchli xizmat sifatida hal qiladi.
Yahoo’dagi yaratilish tarixi
Yahoo’da turli ichki tizimlar (qidiruv, indekslash) o’zlarining muvofiqlashtirish mexanizmlarini alohida-alohida yaratayotgani sezilgach, muhandislar bu vazifani markazlashgan, qayta ishlatiladigan xizmat sifatida yechishga qaror qilishdi — natijada ZooKeeper tug’ildi.
Konfiguratsiya va liderlikni saylash vazifalari
ZooKeeper kichik hajmdagi ma’lumotlarni (konfiguratsiya, holat belgilari) daraxt tuzilishida saqlaydi va bir nechta tugun orasidan “lider”ni saylash, taqsimlangan qulflash (distributed lock) va xizmatlarni kashf qilish (service discovery) kabi vazifalarni ishonchli bajaradi.
Kafka va Hadoop bilan bog’liqligi
Uzoq yillar davomida Apache Kafka klasterning konfiguratsiyasi va broker‘lar orasidagi muvofiqlashtirish uchun ZooKeeper’ga tayangan, garchi so’nggi Kafka versiyalari o’zining ichki KRaft protokoliga o’tib, ZooKeeper’ga bog’liqlikni yo’qotayotgan bo’lsa-da. Hadoop ekotizimidagi HBase kabi boshqa loyihalar ham ZooKeeper’dan foydalanadi.
etcd kabi zamonaviy alternativalar
So’nggi yillarda etcd kabi yangiroq, Raft konsensus algoritmiga asoslangan alternativalar ZooKeeper’ning ba’zi qo’llanilish sohalarida, ayniqsa Kubernetes ekotizimida, o’rnini egallamoqda. Shunga qaramay, ZooKeeper ko’plab eski, o’rnashib qolgan taqsimlangan tizimlarda hamon muhim komponent bo’lib qolmoqda.
Bog’liq tushunchalar
Taqsimlangan tizimlar, Kafka, Hadoop, Muvofiqlashtirish xizmati, Liderlik saylovi, etcd, Raft