ZooKeeper是一个开源的分布式协调服务(a service for coordinating processes of distributed applications),由雅虎公司创建,是Google Chubby的开源实现(Google Chubby是有名的分布式锁服务,GFS和Big Table等大型系统都用它来解决分布式协调、Master选举等一系列与分布式锁服务相关的问题)。分布式程序可以基于ZooKeeper实现负载均衡,命名服务,分布式锁等功能。ZooKeeper将全量数据都存在内存中,实现提高服务器吞吐、减少延迟的目的。
上面的英文说的足够简而意赅了,a service for coordinating processes of distributed applications。是为了协调分布式应用的,到底解决什么样的问题呢。相信大家的Java基础都不错,个人觉得还是拿锁举例子比较好理解,在单机式中,我们想保证多个线程争抢,最后只有一个线程争抢到执行权(锁)并执行你想要让他做的业务代码,最简单的方式,可以用:
synchronized (obj){ //业务逻辑 }