zookeeper是什么?
Apache ZooKeeper是由Apache Hadoop的子项目发展而来,是一个分布式数据一致性的解决方案。Zookeeper的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,以一系列简单易用的接口提供给用户使用。
有什么用
分布式应用程序可以基于Zookeeper实现数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master选举、分布式锁和分布式队列等功能。
Zookeeper可以保证如下分布式一致性特性:
顺序一致性:
从一个客户端发起的事务请求,最终将会严格地按照其发展顺序被应用到Zookeeper中。
原子性:
所有事务请求处理结果在整个集群中所有机器上的应用情况要一致。要么整个集群所有机器都成功应用了某一个事务,要么都没有应用,一定不会出现及群众部分机器应用了该事务,而另一部分没有应用。
单一视图:
无论客户端连接的那个Zookeeper服务器,其看到的服务端数据模型都是一致的。
可靠性:
一旦服务端成功地应用了一个事务,并完成对客户端的响应,那么该事务所引起的服务端状态变更将会被一直保留下来,除非有另一个事务又对其进行了变更。
实时性:
一旦一个事务被成功应用,那么客户端能够立即从服务端上读取到这个事务变更后的最新数据状态(有一定的延时,但最终一定能够从服务端读取到最新数据状态 )