pom.xml添加:
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--导入本地ojdbc6.jar-->
<dependency>
<groupId>oracle</groupId>
<artifactId>oracle</artifactId>
<version>11g</version>
<scope>system</scope>
<systemPath>ojdbc6.jar所在位置</systemPath>
</dependency>
</dependencies>
一.使用zkclient创建znode节点,对节点数据的修改只能通过zkclient
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 = "localhost:2181"; // ip:端口,多台机器之间用逗号(,)隔开
final ZkClient zkClient = new ZkClient(zkServers, 10000, 5000);
if (!zkClient.exists("/db")) {
zkClient.createPersistent("/db");
zkClient.createPersistent("/db/url", "jdbc:mysql://192.168.14.66:3306/work");
zkClient.createPersistent("/db/driverClass", "com.mysql.jdbc.Driver");
zkClient.createPersistent("/db/username", "root");
zkClient.createPersistent("/db/password", "123456");
}
url = zkClient.readData("/db/url");
driverClass = zkClient.readData("/db/driverClass");
username = zkClient.readData("/db/username");
password = zkClient.readData("/db/password");
Connection connection = getConnection(url, driverClass, username, password);
System.out.println(connection);
// 监控/db节点
zkClient.subscribeDataChanges("/db/url", new IZkDataListener() {
// 当/user/zs节点被删除时触发
public void handleDataDeleted(String arg0) throws Exception {
}
// 当/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");
Connection connection = getConnection(url, driverClass, username, password);
System.out.println(connection);
}
});
// 与server保持连接
while (true) {
TimeUnit.SECONDS.sleep(5);
}
}
}
public class ZkModify {
public static void main(String[] args) {
String zkServers="localhost:2181";
ZkClient zkClient=new ZkClient(zkServers, 10000, 5000);
zkClient.writeData("/db/driverClass", "oracle.jdbc.OracleDriver");
zkClient.writeData("/db/username", "food");
zkClient.writeData("/db/password", "123456");
zkClient.writeData("/db/url", "jdbc:oracle:thin:@localhost:1521:ORCL");
}
}
二.使用zookeeper客户端或在eclipse上安装zookeeper插件添加znode节点
对节点数据的修改只能通过使用zookeeper客户端或在eclipse上安装的zookeeper插件
public class DbConnection {
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 = "localhost:2181"; // ip:端口,多台机器之间用逗号(,)隔开
final ZkClient zkClient = new ZkClient(zkServers, 10000, 5000,new BytesPushThroughSerializer());
byte[] url = zkClient.readData("/db/url");
byte[] driverClass = zkClient.readData("/db/driverClass");
byte[] username = zkClient.readData("/db/username");
byte[] password = zkClient.readData("/db/password");
Connection connection = getConnection(new String(url),new String(driverClass),new String(username),new String(password));
System.out.println(connection);
// 监控/db节点
zkClient.subscribeDataChanges("/db/url", new IZkDataListener() {
// 当/user/zs节点被删除时触发
public void handleDataDeleted(String arg0) throws Exception {
}
// 当/db/url节点被修改时触发
public void handleDataChange(String arg0, Object arg1) throws Exception {
byte[] url = zkClient.readData("/db/url");
byte[] driverClass = zkClient.readData("/db/driverClass");
byte[] username = zkClient.readData("/db/username");
byte[] password = zkClient.readData("/db/password");
Connection connection = getConnection(new String(url),new String(driverClass),new String(username),new String(password));
System.out.println(connection);
}
});
// 与server保持连接
while (true) {
TimeUnit.SECONDS.sleep(5);
}
}
}
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<!--导入本地ojdbc6.jar-->
<dependency>
<groupId>oracle</groupId>
<artifactId>oracle</artifactId>
<version>11g</version>
<scope>system</scope>
<systemPath>ojdbc6.jar所在位置</systemPath>
</dependency>
</dependencies>
一.使用zkclient创建znode节点,对节点数据的修改只能通过zkclient
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 = "localhost:2181"; // ip:端口,多台机器之间用逗号(,)隔开
final ZkClient zkClient = new ZkClient(zkServers, 10000, 5000);
if (!zkClient.exists("/db")) {
zkClient.createPersistent("/db");
zkClient.createPersistent("/db/url", "jdbc:mysql://192.168.14.66:3306/work");
zkClient.createPersistent("/db/driverClass", "com.mysql.jdbc.Driver");
zkClient.createPersistent("/db/username", "root");
zkClient.createPersistent("/db/password", "123456");
}
url = zkClient.readData("/db/url");
driverClass = zkClient.readData("/db/driverClass");
username = zkClient.readData("/db/username");
password = zkClient.readData("/db/password");
Connection connection = getConnection(url, driverClass, username, password);
System.out.println(connection);
// 监控/db节点
zkClient.subscribeDataChanges("/db/url", new IZkDataListener() {
// 当/user/zs节点被删除时触发
public void handleDataDeleted(String arg0) throws Exception {
}
// 当/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");
Connection connection = getConnection(url, driverClass, username, password);
System.out.println(connection);
}
});
// 与server保持连接
while (true) {
TimeUnit.SECONDS.sleep(5);
}
}
}
public class ZkModify {
public static void main(String[] args) {
String zkServers="localhost:2181";
ZkClient zkClient=new ZkClient(zkServers, 10000, 5000);
zkClient.writeData("/db/driverClass", "oracle.jdbc.OracleDriver");
zkClient.writeData("/db/username", "food");
zkClient.writeData("/db/password", "123456");
zkClient.writeData("/db/url", "jdbc:oracle:thin:@localhost:1521:ORCL");
}
}
二.使用zookeeper客户端或在eclipse上安装zookeeper插件添加znode节点
对节点数据的修改只能通过使用zookeeper客户端或在eclipse上安装的zookeeper插件
public class DbConnection {
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 = "localhost:2181"; // ip:端口,多台机器之间用逗号(,)隔开
final ZkClient zkClient = new ZkClient(zkServers, 10000, 5000,new BytesPushThroughSerializer());
byte[] url = zkClient.readData("/db/url");
byte[] driverClass = zkClient.readData("/db/driverClass");
byte[] username = zkClient.readData("/db/username");
byte[] password = zkClient.readData("/db/password");
Connection connection = getConnection(new String(url),new String(driverClass),new String(username),new String(password));
System.out.println(connection);
// 监控/db节点
zkClient.subscribeDataChanges("/db/url", new IZkDataListener() {
// 当/user/zs节点被删除时触发
public void handleDataDeleted(String arg0) throws Exception {
}
// 当/db/url节点被修改时触发
public void handleDataChange(String arg0, Object arg1) throws Exception {
byte[] url = zkClient.readData("/db/url");
byte[] driverClass = zkClient.readData("/db/driverClass");
byte[] username = zkClient.readData("/db/username");
byte[] password = zkClient.readData("/db/password");
Connection connection = getConnection(new String(url),new String(driverClass),new String(username),new String(password));
System.out.println(connection);
}
});
// 与server保持连接
while (true) {
TimeUnit.SECONDS.sleep(5);
}
}
}