test server
为了便于开发人员进行ZooKeeper的开发与测试,Curator提供了一种启动简易ZooKeeper服务的方法——TestingServer。TestingServer允许开发人员非常方便的启动一个标准的ZooKeeper服务器,并以此来进行一系列的单元测试。TestingServer在Curator的test包中,需要单独依赖以下Maven依赖来获取:
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<version>2.4.2</version>
</dependency>
下面示例程序演示了TestingServer的基本使用方法。
public class TestingServer_Sample {
static String path = "/zookeeper";
public static void main(String[] args) throws Exception {
TestingServer server = new TestingServer(2181, new File("/home/admin/zk-book-data"));
CuratorFramework client = CuratorFrameworkFactory.builder().connectionString(server.getConnectString()).sessionTimeoutMs(5000).retryPolicy(new ExponentialBackoffRetry(1000, 3)).build();
client.start();
System.out.println(client.getchildren().forPath(path)):
server.close();
}
}
TestingServer允许开发人员自定义ZooKeeper服务器对外服务的端口和dataDir路径。如果没有指定dataDir,那么Curator默认会在系统的临时目录java.io.tmpdir中创建一个临时目录来作为数据存储目录。