小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ZooKeeper學(xué)習(xí)之路 (五)ZooKeeper API的簡(jiǎn)單使用 增刪改查

 HK123COM 2019-02-14
復(fù)制代碼
public class ZKDemo1 {
    
    private static final String CONNECT_STRING = "hadoop1:2181,hadoop2:2181,hadoop3:2181";
    //如果zookeeper使用的是默認(rèn)端口的話,此處可以省略端口號(hào)
    //private static final String CONNECT_STRING = "hadoop1,hadoop2,hadoop3";
    
    //設(shè)置超時(shí)時(shí)間
    private static final int SESSION_TIMEOUT = 5000;
    
    public static void main(String[] args) throws Exception {
        //獲取zookeeper的連接
        //沒(méi)有配置監(jiān)聽(tīng)的話,最后一個(gè)參數(shù)設(shè)為null
        ZooKeeper zk = new ZooKeeper(CONNECT_STRING, SESSION_TIMEOUT, null);
        
        
        
        //創(chuàng)建一個(gè)節(jié)點(diǎn)
        /**
         * 四個(gè)參數(shù)path, data, acl, createMode
         * path:創(chuàng)建節(jié)點(diǎn)的絕對(duì)路徑
         * data:節(jié)點(diǎn)存儲(chǔ)的數(shù)據(jù)
         * acl:權(quán)限控制
         * createMode:節(jié)點(diǎn)的類(lèi)型----永久、臨時(shí)    有編號(hào)的、沒(méi)有編號(hào)的
         * 
         * */
        //String create = zk.create("/xx", "xx".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
        //System.out.println(create);//輸出的結(jié)果是:/xx0000000008
        
        /**
         * 判斷節(jié)點(diǎn)是否存在
         * */
        Stat exists = zk.exists("/xx0000000008", null);
        if(exists == null) {
            System.out.println("節(jié)點(diǎn)不存在");
        }else {
            System.out.println("節(jié)點(diǎn)存在");
        }
        
        
        /**
         * 查看節(jié)點(diǎn)的數(shù)據(jù)
         * 
         * */
        /*byte[] data = zk.getData("/xx0000000008", false, null);
        System.out.println(new String(data));*/
        
        
        /**
         * 修改節(jié)點(diǎn)的數(shù)據(jù)
         * */
        /*Stat setData = zk.setData("/xx0000000008", "xyz".getBytes(), -1);
        if(setData == null) {
            System.out.println("節(jié)點(diǎn)不存在 --- 修改不成功");
        }else {
            System.out.println("節(jié)點(diǎn)存在 --- 修改成功");
        }*/
        
        
        /**
         * 刪除節(jié)點(diǎn)
         * */
        
        /*zk.delete("/xx0000000008", -1);*/
        
        
        
        
        //關(guān)閉zookeeper的連接
        zk.close();
    }

}
復(fù)制代碼

監(jiān)聽(tīng)設(shè)置

復(fù)制代碼
 1 public class ZKDemo2 {
 2     
 3     private static final String CONNECT_STRING = "hadoop1,hadoop2,hadoop3";
 4     private static final int SESSION_TIMEOUT = 5000;
 5     
 6     public static void main(String[] args) throws Exception {
 7 
 8         // 獲取連接
 9         // 當(dāng)前的這個(gè)匿名內(nèi)部類(lèi)不是已經(jīng)添加好的監(jiān)聽(tīng), 以后只要是當(dāng)前這個(gè)zk對(duì)象添加了任何的監(jiān)聽(tīng)器響應(yīng)了之后,都會(huì)調(diào)用這個(gè)process方法
10         ZooKeeper zk = new ZooKeeper(CONNECT_STRING, SESSION_TIMEOUT, new Watcher() {
11             
12             @Override
13             public void process(WatchedEvent event) {
14                 
15                 System.out.println("1111111111111111111111");
16                 KeeperState state = event.getState();
17                 String path = event.getPath();
18                 EventType type = event.getType();
19                 
20                 System.out.println(state+"\t"+path+"\t"+type);
21             }
22         });
23         
24         System.out.println("2222222222222222222222");
25         
26         /**
27          * 注冊(cè)監(jiān)聽(tīng)
28          * 第二個(gè)參數(shù)有三種傳法:
29          * 
30          * 1、false, 表示不使用監(jiān)聽(tīng)器
31          * 
32          * 2、watcher對(duì)象, 表示當(dāng)前的這次監(jiān)聽(tīng)如果響應(yīng)不了的話,就會(huì)回調(diào)當(dāng)前這個(gè)watcher的process方法
33          * 
34          * 3、true,  表示如果當(dāng)前的會(huì)話/zk 所注冊(cè)或者添加的所有的監(jiān)聽(tīng)器的響應(yīng),都會(huì)會(huì)調(diào)用 獲取連接時(shí)  初始化的 監(jiān)聽(tīng)器對(duì)象中 的 process 方法
35          */
36         zk.getData("/a/c", true, null);
37         
38         System.out.println("3333333333333333333333333333");
39         Thread.sleep(5000);
40         
41         zk.setData("/a/c", "hehe666".getBytes(), -1);
42         
43         System.out.println("4444444444444444444444444444");
44         
45         zk.close();
46         
47         
48         
49     }
50 
51 }
復(fù)制代碼

輸出結(jié)果

復(fù)制代碼
2222222222222222222222
1111111111111111111111
SyncConnected    null    None
3333333333333333333333333333
1111111111111111111111
SyncConnected    /a/c    NodeDataChanged
4444444444444444444444444444
復(fù)制代碼

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多