【zookeeper系列】ZK典型的应用场景

很久之前就想写几篇关于zookeeper的文章了,正好这段时间闲下来了,写几篇博客一方面梳理一下自己的知识体系,另一方面分享给大家便于大家学习。

Zookeeper 简称ZK,初次接触Zookeeper,大家首先想到的就是Zookeeper的应用场景,主要是用来解决什么问题,归纳起来主要是以下五方面的内容。

一、统一命名服务(Name Service)

分布式应用中,通常需要有一套完整的命名规则,既能够产生唯一的名称又便于人识别和记住,通常情况下用树形的名称结构是一个理想的选择,树形的名称结构是一个有层次的目录结构,既对人友好又不会重复。说到这里你可能想到了 JNDI,没错 Zookeeper 的 Name Service 与 JNDI 能够完成的功能是差不多的,它们都是将有层次的目录结构关联到一定资源上,但是 Zookeeper 的 Name Service 更加是广泛意义上的关联,也许你并不需要将名称关联到特定资源上,你可能只需要一个不会重复名称,就像数据库中产生一个唯一的数字主键一样。
Name Service 是 Zookeeper 内置的功能,你只要调用 Zookeeper 的 API 就能实现。如调用 create 接口就可以很容易创建一个目录节点。
以上摘自IMB Bluemix的分布式服务框架 Zookeeper – 管理分布式环境中的数据文章中,我作个总结:
1)提供类似JNDI的服务,这也是Zookeeper的基础,整个Zookeeper的功能就是围绕树形结构的内容进行展开的
2)提供临时类型(EPHEMERAL)的目录
3)提供顺序自动编号类型(SEQUENTIAL)的目录
关于2)、3)点会在后面作详细介绍,集群管理、共享锁就是基于以上特性进行实现的

二、统一配置管理(Con

你可能感兴趣的:(zookeeper,Java拾遗)