ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Zookeeper分布式管理软件-内容发布

2022-07-19 12:37:21  阅读:194  来源: 互联网

标签:zookeeper demo Zookeeper 2181 管理软件 rim import localhost 分布式


Zookeeper文件写入

首先必须要关闭虚拟机防火墙,否则写入报错

关闭虚拟机防火墙

systemctl status firewalld--查看防火墙状态,当为runing为打开

systemctl stop firewalld ---临时关闭
systemctl disable firewalld ---永久关闭 ,当为dead则关闭防火墙

当需要打开防火墙时,执行下面语句后重启

systemctl enable firewalld

在zookeeper中创建文件demo,切勿使用自带的zookeeper文件,容易修改原配置

[zk: localhost:2181(CONNECTED) 22] create /demo
Created /demo

注入依赖pom.xml ,版本号和zookeeper版本一致

<!--zookeeper依赖注入-->
    <dependencies>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>3.5.10</version>
        </dependency>
    </dependencies>

创建类进行文件写入zookeeper

package com.msb;

import org.apache.zookeeper.*;

import java.io.IOException;

public class MyApp {
   public static void main(String[] args){
      /**
       * 创建zookeeper对象
       * 参数1:zookeeper ip+端口号(虚拟机ip,zookeeper端口号) 
       * 参数2:访问超时设置  
       * 参数3:连接成功后的编写信息  
       */
         try {
            ZooKeeper zooKeeper = new ZooKeeper("192.168.226.128:2181", 100000, new Watcher() {
               @Override
               public void process(WatchedEvent watchedEvent) {
                  System.out.println("已连接zookeeper");
               }
            });
            /**
             * 参数1:向zookeeper发送的文件
             * 参数2:发生的内容
             * 参数3:权限
             * 参数4:内容的模式
             */
            String content =  zooKeeper.create("/demo/rim-address","rmi:localhost:8080/demoService".getBytes(),
                    ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
            System.out.println(content);
         } catch (IOException e) {
            e.printStackTrace();
         } catch (InterruptedException e) {
            e.printStackTrace();
         } catch (KeeperException e) {
            e.printStackTrace();
         }
   }

}

返回连接成功后的编写信息

在zookeeper中查询发布的内容

[zk: localhost:2181(CONNECTED) 0] ls /
[demo, test, zookeeper]
[zk: localhost:2181(CONNECTED) 2] ls /demo
[rim-address0000000000, rim-address0000000001]
[zk: localhost:2181(CONNECTED) 3] get /demo/rim-address000000000
rim-address0000000000   rim-address0000000001   
[zk: localhost:2181(CONNECTED) 4] get /demo/rim-address0000000000
rmi:localhost:8080/demoService
[zk: localhost:2181(CONNECTED) 5]

从zookeeper中获取发布信息,运行后需要等待一段时间,进行数据读取

package com.msb;

import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.WatchedEvent;
import org.apache.zookeeper.Watcher;
import org.apache.zookeeper.ZooKeeper;

import java.io.IOException;
import java.util.List;

public class SelectApp {
    public static void main(String[] args) {
        try {
            ZooKeeper zookeeper = new ZooKeeper("192.168.226.128:2181", 10000, new Watcher() {
                @Override
                public void process(WatchedEvent watchedEvent) {
                    System.out.println("获取连接");
                }
            });
            //获取列表
            List<String> list = zookeeper.getChildren("/demo", false);
            for (String child : list) {
                byte[] result = zookeeper.getData("/demo/" + child, false, null);
                System.out.println(new String(result));
            }
        } catch (IOException e) {
            e.printStackTrace();
        } catch (KeeperException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

标签:zookeeper,demo,Zookeeper,2181,管理软件,rim,import,localhost,分布式
来源: https://www.cnblogs.com/188221creat/p/16493632.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有