标签:修改 代码 artifact readonly 初始化 线程 div 包括 tcl
<dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.10</version> </dependency>
public static void main(String[] args) throws KeeperException, InterruptedException, IOException { ZooKeeper zookeeper = new ZooKeeper("192.168.13.102:2181", 4000, new Watcher() { @Override public void process(WatchedEvent event) { System.out.println("event.type" + event.getType()); } }); zookeeper.create("/watch", "0".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); // 创建节点 zookeeper.exists("/watch", true); // 注册监听 Thread.sleep(1000); zookeeper.setData("/watch", "1".getBytes(), -1); // 修改节点的值触发监听 System.in.read(); }
ZooKeeper zookeeper=new ZooKeeper(“192.168.11.152:2181”,4000,new Watcher(){ public void processor(WatchedEvent event){ System.out.println(“event.type”); } });
public ZooKeeper(String connectString, int sessionTimeout, Watcher watcher,boolean canBeReadOnly, HostProvider aHostProvider,ZKClientConfig clientConfig) throws IOException { LOG.info("Initiating client connection, connectString=" + connectString+ " sessionTimeout=" + sessionTimeout + " watcher=" + watcher); if (clientConfig == null) { clientConfig = new ZKClientConfig(); } this.clientConfig = clientConfig; watchManager = defaultWatchManager(); watchManager.defaultWatcher = watcher; //在这里将 watcher 设置到ZKWatchManager ConnectStringParser connectStringParser = new ConnectStringParser(connectString); hostProvider = aHostProvider; //初始化了 ClientCnxn,并且调用 cnxn.start()方法 cnxn = new ClientCnxn(connectStringParser.getChrootPath(), hostProvider, sessionTimeout, this, watchManager,getClientCnxnSocket(), canBeReadOnly); cnxn.start(); }
public ClientCnxn(String chrootPath, HostProvider hostProvider, int sessionTimeout, ZooKeeper zooKeeper, ClientWatchManager watcher, ClientCnxnSocket clientCnxnSocket,long sessionId, byte[] sessionPasswd, boolean canBeReadOnly) { this.zooKeeper = zooKeeper; this.watcher = watcher; this.sessionId = sessionId; this.sessionPasswd = sessionPasswd; this.sessionTimeout = sessionTimeout; this.hostProvider = hostProvider; this.chrootPath = chrootPath; connectTimeout = sessionTimeout / hostProvider.size(); readTimeout = sessionTimeout * 2 / 3; readOnly = canBeReadOnly; sendThread = new SendThread(clientCnxnSocket); //初始化 sendThread eventThread = new EventThread(); //初始化 eventThread this.clientConfig=zooKeeper.getClientConfig(); } public void start() { //启动两个线程 sendThread.start(); eventThread.start(); }
标签:修改 代码 artifact readonly 初始化 线程 div 包括 tcl
原文地址:https://www.cnblogs.com/47Gamer/p/13567762.html