甲方的rpc服务是基于netty自己开发的,注册中心使用的是zookeeper,用起来倒没有什么问题。可惜甲方的同事开发完服务,发布到sit环境,只管发布,也不管服务到底是否正常启动,rpc服务不可用的情况时有发生,为此,小黑同学决定自己搞一个注册中心管理后台。
用小黑的话说,就是发布一个注册中心管理后台,这样直接把已注册到zk的服务全部罗列出来,注册中心没有的rpc服务就是没有正常发布。让甲方的同事自己检查服务状态是否正常,节约甲乙双方的时间。同时,也能看到当前是否有同事本地开发环境注册到sit环境的注册中心。以下是小黑的简版代码:
private static ZkClient client = null;
public static void main(String[] args) {
client = new ZkClient("xx.xx.xxx.xxx:2181", 5000);
client.setZkSerializer(new MySerializable());
Scanner scan = new Scanner(System.in);
while (true) {
String s = scan.next();
if ("quit".equals(s)) {
break;
}
System.out.println(String.format("输入的path: %s", s));
getList(s);
}
scan.close();
client.close();
}
public static void getList(String path) {
List<String> list = client.getChildren(path);
if (list.size() == 0) {
Object o = client.readData(path);
System.out.println(o);
}
list.forEach((s) -> {
String t = path.concat("/").concat(s);
getList(t);
});
}