使用Zookeeper的原因主要包括:
高可靠性:
Zookeeper提供一致性、可用性和分区容忍性的保证,确保在节点宕机或网络分区时,锁服务和其他协调服务仍能正常工作。
顺序一致性:
从同一个客户端发起的请求,最终会严格按照其发起顺序被应用到Zookeeper中。
原子性:
所有事务请求的处理结果在整个集群中所有机器上应用情况是一致的,要么全部成功应用,要么都不应用。
单一视图:
无论客户端连接哪个Zookeeper服务器,看到的服务端数据模型都是一致的。
实时性:
一旦事务被成功应用,客户端能够立即从服务端读取到事务变更后的最新数据状态。
简化分布式应用开发:
Zookeeper对外暴露简单的API,隐藏了底层细节,使得开发者可以更方便地构建分布式应用。
功能丰富:
支持配置管理、命名服务、分布式锁控制、消息的发布与订阅、集群内节点状态的快速感知等多种分布式协调需求。
高可用性:
Zookeeper的集群模式允许多台服务器共同提供服务,某台服务器故障时,其他服务器可以接管,保证系统不中断。
易于管理:
提供分布式锁、服务发现、配置管理等功能,简化了分布式系统中服务之间的协调和同步问题。
支持事件监听:
通过watcher机制,客户端可以监听数据变化,实现数据的发布/订阅等核心功能。
Zookeeper的这些特性使其成为大型分布式系统中不可或缺的协调服务组件