我是靠谱客的博主 慈祥小馒头,最近开发中收集的这篇文章主要介绍zookeeper实现注册中心(demo),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

服务端:

public class ZkTest {
   private ZooKeeper zooKeeper;

   public ZkTest() {
      init();
   }

   private void  init(){

      try {
         ResourceBundle bundle = ResourceBundle.getBundle("zk");
         String url=bundle.getString("zk.url");
         Integer time=Integer.valueOf((String) bundle.getString("zk.timeout"));
         zooKeeper= new ZooKeeper(url, time, new Watcher() {
            @Override
            public void process(WatchedEvent event) {
               if(event.getType().equals(Event.EventType.NodeDataChanged)){
                  System.out.println(event.getPath()+"节点发生了改变");
               }
            }

         });
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
   public void createNode() throws KeeperException, InterruptedException {
      String path = zooKeeper.create("/root/server", "服务提供者".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
      System.out.println("添加一个服务提供者:"+path);
   }

   public static void main(String[] args) {
      ZkTest zkServer = new ZkTest();
      try {
         for (int i=0;i<5;i++){
            zkServer.createNode();
         }

         Thread.sleep(Long.MAX_VALUE);
      } catch (KeeperException e) {
         e.printStackTrace();
      } catch (InterruptedException e) {
         e.printStackTrace();
      }
   }



}
消费端:

public static void main(String[] args) throws InterruptedException {
    ZkClient zkClient = new ZkClient(new ZkConnection(CONNECT_ADDR, SESSION_TIMEOUT));
    zkClient.subscribeChildChanges("/root", new IZkChildListener() {
        @Override
        public void handleChildChange(String s, List<String> list) throws Exception {
            System.out.println(s+"的子节点发生改变"+ Arrays.toString(list.toArray()));
        }
    });
    Thread.sleep(Integer.MAX_VALUE);
}

测试:先启动消费端,在启动服务端

服务端生成五个临时节点


消费端获取了服务端的节点


关闭服务端,临时节点会自动删除,消费端会自动监听到


最后

以上就是慈祥小馒头为你收集整理的zookeeper实现注册中心(demo)的全部内容,希望文章能够帮你解决zookeeper实现注册中心(demo)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部