1.你经常访问的技术类论坛有哪些?请推荐三篇你最近读到对你很有帮助的技术类帖子,列出帖子的标题和URL链接。
1.你经常访问的技术类论坛有哪些?请推荐三篇你最近读到对你很有帮助的技术类帖子,列出帖子的标题和URL链接。
Zab:Zookeeper 中的分布式一致性协议介绍
基于zookeeper实现统一配置管理
增删改查节点
增删改查节点
增删改查节点 package qs.zookeeper.base; import java.util.concurrent.CountDownLatch; import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.WatchedEvent; import org.apache.zookeeper.Watcher; import org.apache.zookeeper.Watcher.Event.EventType; import org.apache.zookeeper.ZooKeeper; import org.apache.zookeeper.Watcher.Event.KeeperState; import org.apache.zookeeper.ZooDefs.Ids; public class ZookeeperBase { /** zookeeper地址 */ static final String CONNECT_ADDR = "192.168.80.88:2181,192.168.80.87:2181,192.168.80.86:2181"; /** session超时时间 */ static final int SESSION_OUTTIME = 2000;//ms /** 信号量,阻塞程序执行,用于等待zookeeper连接成功,发送成功信号 */ static final CountDownLatch connectedSemaphore = new CountDownLatch(1); public static void main(String[] args) throws Exception{ ZooKeeper zk = new ZooKeeper(CONNECT_ADDR, SESSION_OUTTIME, new Watcher(){ @Override public void process(WatchedEvent event) { //获取事件的状态 KeeperState keeperState = event.getState(); EventType eventType = event.getType(); //如果是建立连接 //KeeperState.ConnectedReadOnly //``KeeperState.Disconnected //``KeeperState.Expired //KeeperState.NoSyncConnected //``KeeperState.SyncConnected //KeeperState.Unknown if(KeeperState.SyncConnected == keeperState){ if(EventType.None == eventType){ //如果建立连接成功,则发送信号量,让后续阻塞程序向下执行 connectedSemaphore.countDown(); System.out.println("zk 建立连接"); } } } }); //进行阻塞 connectedSemaphore.await(); System.out.println(".."); //创建父节点 zk.create("/testRoot", "testRoot".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT,); //创建子节点 zk.create("/testRoot/children", "children data".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT); //获取节点洗信息 byte[] data = zk.getData("/testRoot", false, null); System.out.println(new String(data)); System.out.println(zk.getChildren("/testRoot", false)); //修改节点的值 zk.setData("/testRoot", "modify data root".getBytes(), -1); byte[] data = zk.getData("/testRoot", false, null); System.out.println(new String(data)); //判断节点是否存在 System.out.println(zk.exists("/testRoot/children", false)); //删除节点 zk.delete("/testRoot/children", -1); System.out.println(zk.exists("/testRoot/children", false)); zk.close(); } }
Zookeeper简介