日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

8.使用Exists监控ZNode的三大Change事件

發布時間:2025/3/15 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 8.使用Exists监控ZNode的三大Change事件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、 zookeeper是一個分布式的協調程序(所有程序都是通過訂閱它來相互感知) 1. tcp(長鏈接) + watcher server -》client client -》server 2. Driver 中的方法 exists() 監控一個znode的 CURD 的操作。 client1 client2 同時訂閱 baidu節點 通過對baidu節點的CURD操作,exists就會監控到,從而通知客戶端 接下來是C#代碼的實現 1. 實現接口?IWatcher public class ExistsWatcher : IWatcher{private ZooKeeper _zookeeper = null; public ExistsWatcher(ZooKeeper zookeeper){_zookeeper = zookeeper;}public void Process(WatchedEvent @event){Console.WriteLine("path={0},state={1},type={2}", @event.Path, @event.State, @event.Type);//重新注冊 exists_zookeeper.Exists(@event.Path, this);}}

2. 注冊zookeeper ?ZookeeperWatcher的實現看 上一節課代碼

      ZooKeeper zookeeper = new ZooKeeper("192.168.84.136:2181", TimeSpan.FromSeconds(5),new ZookeeperWatcher());//通過wait函數,等待ZookeeperWatcher 回調函數執行成功 ZookeeperWatcher.countdownEvent.Wait();var list = zookeeper.GetChildren("/", false);#region 第8節try{Stat stat = new Stat();stat = zookeeper.Exists("/google", new ExistsWatcher(zookeeper));}catch (KeeperException ex){throw new Exception(ex.Message);}#endregion

?

注意: client -》server watcher 監控是一次性的, client 需要在wathcer接收到通知后,從新注冊exists 執行了一次創建,一次刪除,客戶端都收到了通知 3. exists可以監控那些事件 NodeDeleted,NodeCreated,NodeDataChanged 4. exists 應用場景 master -》 backup 雙機熱備 【臨時節點】 zookeeper本質就是一個協調程序。

轉載于:https://www.cnblogs.com/dragon-L/p/8574856.html

總結

以上是生活随笔為你收集整理的8.使用Exists监控ZNode的三大Change事件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。