ConnectDb
public class ConnectDb {
private static String url = null;
private static String driverClass = null;
private static String username = null;
private static String password = null;
public static Connection getConnection(String url, String driverClass, String username, String password)
throws Exception {
Class.forName(driverClass);
Connection connection = DriverManager.getConnection(url, username, password);
return connection;
}
public static void main(String[] args) throws Exception {
String zkServers = "192.168.198.100:2181"; // ip:端口,多台机器之间用逗号(,)隔开
System.out.println("main1111111");
final ZkClient zkClient = new ZkClient(zkServers, 1000000, 500000);
System.out.println("main2222222");
if (!zkClient.exists("/db")) {
zkClient.createPersistent("/db");
zkClient.createPersistent("/db/url", "jdbc:mysql://10.95.101.110:8888/offer_0");
zkClient.createPersistent("/db/driverClass", "com.mysql.jdbc.Driver");
zkClient.createPersistent("/db/username", "root");
zkClient.createPersistent("/db/password", "vmpQl@caigou888");
}
System.out.println("main333333333");
url = zkClient.readData("/db/url");
driverClass = zkClient.readData("/db/driverClass");
username = zkClient.readData("/db/username");
password = zkClient.readData("/db/password");
System.out.println("url=" + url + "&driverClass=" + driverClass);
Connection connection = getConnection(url, driverClass, username, password);
System.out.println(connection + "=111111111");
// 监控/db节点
zkClient.subscribeDataChanges("/db/url", new IZkDataListener() {
// 当/db/url节点被删除时触发
public void handleDataDeleted(String arg0) throws Exception {
System.out.println("subscribeDataChanges=222222222");
}
// 当/db/url节点被修改时触发
public void handleDataChange(String arg0, Object arg1) throws Exception {
url = zkClient.readData("/db/url");
driverClass = zkClient.readData("/db/driverClass");
username = zkClient.readData("/db/username");
password = zkClient.readData("/db/password");
System.out.println("=333333");
Connection connection = getConnection(url, driverClass, username, password);
System.out.println(connection + "=4444444");
}
});
// 与server保持连接
while (true) {
TimeUnit.SECONDS.sleep(5);
}
}
}
ZKModify
public class ZkModify {
public static void main(String[] args) {
String zkServers = "192.168.198.101:2181";
ZkClient zkClient = new ZkClient(zkServers, 10000, 5000);
// zkClient.deleteRecursive("/db");
zkClient.delete("/db/url");
// zkClient.writeData("/db/driverClass", "com.mysql.jdbc.Driver");
// zkClient.writeData("/db/username", "root");
// zkClient.writeData("/db/password", "321456");
// zkClient.writeData("/db/url", "jdbc:mysql://10.95.101.110:8888/offer_02");
}
}