使用 Zookeeper 而不仅仅是数据库来管理分布式系统的目的是什么?
我正在学习Zookeeper,到目前为止,我不明白将其用于数据库无法解决的分布式系统的目的。
我读过的用例是通过让Zookeeper客户端读/写到Zookeeper服务器,为分布式系统实现锁,屏障等。通过读/写数据库不能实现相同的目标吗?
例如,我的书描述了使用 Zookeeper 实现锁的方法是让想要获取锁的 Zookeeper 客户端创建一个在 .然后,该锁由其子 znode 具有最低序列号的客户端拥有。ephemeral znode
lock-znode
书中所有其他 Zookeeper 示例再次只是使用它来存储/检索值。
似乎Zookeeper与数据库/任何存储的唯一区别是“观察者”概念。但这可以用其他东西来构建。
我知道我对Zookeeper的简化观点是一种误解。那么有人能告诉我Zookeeper真正提供了数据库/自定义观察者无法提供的吗?