1.复制3份zoo.cfg
新建data以及log文件夹
zoo1.cfg:
zoo2.cfg:
zoo3.cfg:
2.运行之前先把单机环境的log日志以及data删除否则会运行报错
3.分别在data新建的d_1,d_2,d_3里创建文件myid,里面分别写入1,2,3。
4.复制3份
设置下:
5.开3个CMD命令行
分别运行zkServer1.cmd,zkServer2.cmd,zkServer3.cmd
即可。
6.jps命令查看
7.java测试连接
public class WatcherTest implements Watcher { @Override public void process(WatchedEvent watchedEvent) { System.out.println("============="); System.out.println("path: " + watchedEvent.getPath()); System.out.println("type: " + watchedEvent.getType()); System.out.println("state: " + watchedEvent.getState()); } }
编写一个ZooKeeper实例,多个连接:
public class ZookeeperTest { public static void main(String[] args) throws IOException,InterruptedException, KeeperException { //创建一个Zookeeper实例 ZooKeeper zk = new ZooKeeper("127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183", 3000, new WatcherTest()); String node = "/node2"; Stat stat = zk.exists(node, false); if(stat==null){ //创建一个节点,数据为123,不进行ACL权限控制,节点为永久性的 String createResult = zk.create(node, "123".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); System.out.println(createResult); } byte[] bytes = zk.getData(node, false, stat); System.out.println(new String(bytes)); zk.close(); } }
控制台输出:
参考:https://www.cnblogs.com/zjfjava/p/9215374.html
运行结果:
1:
2:
3: