现在大部分互联网公司所提供的服务都是基于分布式系统实现的,因为单台服务器的性能有瓶颈,只有分布式系统才能支撑得起这么高的用户量。而分布式系统必然涉及到多台服务器的协调和同步,这就需要用到Zookeeper。
Zookeeper有很多客户端,例如官方的zkClient、Netflix公司开发且开源的Curator等。本文将要介绍Curator,它的抽象层次比zkClient更高,使用起来也比zkClient容易。
1 Curator分为以下几个模块
- curator-recipes:在多数情况下用这个artifact,它包含一些分布式系统常用的功能(recipes),例如分布式锁、领导者选举等。curator-recipes自动依赖curator-framework和curator-client。
- curator-async:包含异步DSL和O/R modeling,迁移等功能。
- curator-framework:包含Curator框架的高层API,它自动依赖curator-client。
- curator-client:相当于官方zkClient中的Zookeeper类。
- curator-test:包含一些测试工具。
- curator-example:包含几个关于Curator的例子。
- curator-x-discovery:基于Curator实现的服务发现功能。
- curator-x-discovery-server:用于Curator服务发现功能的Restful服务器。
2 配置Curator
假设已经搭建好zookeeper集群,使用curator需要在pom.xml中增加依赖:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>