1、首先从github下载该项目源码:
git clone https://github.com/dangdangdotcom/config-toolkit.git
2、将config-zk-web这个maven工程打包,可以得到一个war,这就是配置管理界面后台。
3、将war部署到tomcat下,就可以通过http://127.0.0.1:8080/config-web/访问
4、启动zookeeper server,端口号使用默认的2181
6、创建项目需要的根节点,并对内容进行加密。比如我们的根节点是/atyroot,数据内容是123456。为了能在配置管理界面连接这个节点,需要对内容进行SHA1加密。
import com.google.common.hash.Hashing;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class SHA1 {
public static void main(String[] args) throws NoSuchAlgorithmException {
// 7c4a8d09ca3762af61e59520943dc26494f8941b
String password = SHA1("123456");
System.out.println(password);
// 7c4a8d09ca3762af61e59520943dc26494f8941b
String dest = Hashing.sha1().hashBytes("123456".getBytes()).toString();
System.out.println(dest);
}
public static String SHA1(String decript) throws NoSuchAlgorithmException {
MessageDigest digest = java.security.MessageDigest
.getInstance("SHA-1");
digest.update(decript.getBytes());
byte messageDigest[] = digest.digest();
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
if (shaHex.length() < 2) {
hexString.append(0);
}
hexString.append(shaHex);
}
return hexString.toString();
}
}
7、使用zk客户端连接zookeeper,创建根节点
8、在控制管理界面,登陆/atyroot,密码是123456
9、创建版本和配置数据
10、通过Java代码获取配置数据
com.dangdang
config-toolkit
3.1.6-RELEASE
import com.dangdang.config.service.GeneralConfigGroup;
import com.dangdang.config.service.zookeeper.ZookeeperConfigGroup;
import com.dangdang.config.service.zookeeper.ZookeeperConfigProfile;
public class DandangMain {
public static void main(String[] args) {
ZookeeperConfigProfile configProfile = new ZookeeperConfigProfile("127.0.0.1:2181", "/atyroot", "0.0");
GeneralConfigGroup group = new ZookeeperConfigGroup(configProfile, "jdbc");
System.out.println(group.get("url"));
}
}
11、与spring集成获取配置数据
xmlns:c="http://www.springframework.org/schema/c"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
c:configProfile-ref="configProfile" c:node="jdbc"/>
import com.dangdang.config.service.zookeeper.ZookeeperConfigGroup;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import java.io.IOException;
public class SpringDangDangMain {
public static void main(String[] args) {
ApplicationContext context = new FileSystemXmlApplicationContext(
"src/main/java/net/aty/dangdang/spring-dangdang.xml");// 加载 spring 配置文件
ConfigInfoHolder holder = (ConfigInfoHolder) context.getBean("holder");
ZookeeperConfigGroup group = (ZookeeperConfigGroup) context.getBean("jdbcConfigGroup");
System.out.println(holder.getDetail());
System.out.println(group.get("url"));
// 修改url配置数据后,在控制台回车,观察热替换效果
try {
System.in.read();
} catch (IOException e) {
}
System.out.println(holder.getDetail());
System.out.println(group.get("url"));
}
}
12、再谈管理界面的登录和注册
上面我们是通过自己对zookeeper创建节点并加密,然后可以用这个信息登录easyZK配置界面。那只不过是为了展示easyZK的实现原理,实际项目中使用是很容易的。输入节点名(/aty)和密码(123456)之后,直接sign in 和sign up就可以了,前者是登录,后者是注册。
转载自:http://blog.csdn.net/aitangyong/article/details/52933063