Я изучаю Zookeeper, и до сих пор я не понимаю цели его использования для распределенных систем, которые базы данных не могут решить.Какова цель использования Zookeeper, а не просто баз данных для управления распределенными системами?
Случаи использования, которые я прочитал, реализуют блокировку, барьер и т. Д. Для распределенных систем, когда клиенты Zookeeper читают/записывают на сервер Zookeeper. Невозможно добиться того же путем чтения/записи в базы данных?
Например, в моей книге описывается способ реализации блокировки с Zookeeper, чтобы клиенты Zookeeper, желающие получить блокировку, создали ephemeral znode
с последовательным флагом, установленным под номером lock-znode
. Затем блокировка принадлежит клиенту, чей дочерний znode имеет самый низкий порядковый номер.
Все остальные примеры Zookeeper в книге снова просто используют его для хранения/извлечения значений.
Кажется, единственное, что отличается от Zookeeper от базы данных/любого хранилища, - это концепция «наблюдателя». Но это можно построить с помощью чего-то другого.
Я знаю, что мой упрощенный вид Zookeeper - это недоразумение. Так может ли кто-нибудь сказать мне, что Zookeeper действительно обеспечивает, что база данных/пользовательский наблюдатель не может?
Спасибо, что направили меня в нужное русло! Это было путано, так как я читал о том, что Zookeeper использует для чтения/записи, но люди редко описывают Zookeeper с РСУБД, поэтому я думал, что это совсем другое. – Glide
Одна вещь, которую я не понимаю, - это как Zookeeper больше разделяет Толерантность, чем любая СУБД? – Glide
Я думаю, вы должны посмотреть на этот вопрос о NoSql vs RDBM, я думаю, это может вам помочь. http://dba.stackexchange.com/questions/34892/why-cant-rdbms-cluster-the-way-nosql-does – Petter