zookeeper 管理 项目配置文件
项目的目录结构
- Config.java
package com.pkl.common.zookeeper.config;
public interface Config {
byte[] getConfig(String host, String path) throws Exception;
}
- ZooKeeperConfig.java
package com.pkl.common.zookeeper.config;
import org.apache.curator.framework.CuratorFramework;
import org.apache.zookeeper.data.Stat;
public class ZooKeeperConfig implements Config {
@Override
public byte[] getConfig(String host, String path) throws Exception {
CuratorFramework client = ZooKeeperFactory.get(host);
if (!exists(client, path)) {
throw new RuntimeException("Path " + path + " does not exists.");
}
return client.getData().forPath(path);
}
private boolean exists(CuratorFramework client, String path) throws Exception {
Stat stat = client.checkExists().forPath(path);
return !(stat == null);
}
}
- ZooKeeperFactory.java
package com.pkl.common.zookeeper.config;
import org.apache.curator.RetryPolicy;
import org.apache.curator.framework.CuratorFramework;