搭建zookeeper集群

  1. 创建docker-compose.yml文件

    1. ```
    2. version: '3.1'
    3. services:
    4. zoo1:
    5. image: zookeeper
    6. restart: always
    7. container_name: zoo1
    8. ports:
    9. - 2181:2181
    10. volumes:
    11. - /usr/local/docker/zookeeper/zoo1/data:/data
    12. - /usr/local/docker/zookeeper/zoo1/datalog:/datalog
    13. environment:
    14. ZOO_MY_ID: 1
    15. ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
    16. zoo2:
    17. image: zookeeper
    18. restart: always
    19. container_name: zoo2
    20. ports:
    21. - 2182:2181
    22. volumes:
    23. - /usr/local/docker/zookeeper/zoo2/data:/data
    24. - /usr/local/docker/zookeeper/zoo2/datalog:/datalog
    25. environment:
    26. ZOO_MY_ID: 2
    27. ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
    28. zoo3:
    29. image: zookeeper
    30. restart: always
    31. container_name: zoo3
    32. ports:
    33. - 2183:2181
    34. volumes:
    35. - /usr/local/docker/zookeeper/zoo3/data:/dada
    36. - /usr/local/docker/zookeeper/zoo3/datalog:/datalog
    37. environment:
    38. ZOO_MY_ID: 3
    39. ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
    40. ```
  2. docker-compose up -d 后台运行

  3. docker-compose config 查看配置

  4. docker exec -it <容器id> bash 交互式进入容器

  5. bin/zkServer.sh status 查看zookeeper集群状态(follower/leader)

java使用zookeeper导入包和配置

  1. 导入包

    1. ```
    2. 'org.apache.zookeeper:zookeeper:3.5.6',
    3. "org.apache.logging.log4j:log4j:2.12.1",
    4. 'org.apache.logging.log4j:log4j-1.2-api:2.12.1',
    5. 'org.apache.logging.log4j:log4j-core:2.12.1'
    6. ```
  2. 在resources目录下创建 log4j2.properties文件并配置

    1. ```
    2. log4j.rootLogger=INFO,stdout
    3. log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    5. log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
    6. log4j.appender.logfile=org.apache.log4j.FileAppender
    7. log4j.appender.logfile.File=target/spring.log
    8. log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    9. log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
    10. ```
  3. 代码示例

    1. ```
    2. public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
    3. String connect = "192.168.145.128:2181,192.168.145.128:2182,192.168.145.128:2183";
    4. int timeout = 30000;
    5. ZooKeeper zooKeeper = null;
    6. ZooKeeper finalZooKeeper = zooKeeper;
    7. zooKeeper = new ZooKeeper(connect, timeout, new Watcher() {
    8. @Override
    9. public void process(WatchedEvent event) {
    10. // System.out.println("start");
    11. // List<String> children = null;
    12. // try {
    13. // children = finalZooKeeper.getChildren("/hhh", true);
    14. // children.forEach(item -> System.out.println(item));
    15. // } catch (KeeperException e) {
    16. // e.printStackTrace();
    17. // } catch (InterruptedException e) {
    18. // e.printStackTrace();
    19. // }
    20. // System.out.println("end");
    21. // }
    22. }
    23. });
    24. //必须连接好才能创建目录
    25. System.out.println(zooKeeper.getState());
    26. while (true) {
    27. if (ZooKeeper.States.CONNECTING == zooKeeper.getState()) {
    28. Thread.sleep(1000);
    29. } else {
    30. break;
    31. }
    32. }
    33. System.out.println(zooKeeper.getState());
    34. // String path = zooKeeper.create("/hhh", "test11".getBytes()
    35. // , ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
    36. // System.out.println(path);
    37. List<String> children = zooKeeper.getChildren("/", true);
    38. children.forEach(item -> System.out.println(item));
    39. byte[] data = zooKeeper.getData("/hhh", false, null);
    40. System.out.println(new String(data));
    41. ```

docker-compose搭建zookeeper集群的更多相关文章

  1. Docker中搭建zookeeper集群

    1.获取官方镜像 从dockerhub获取官方的zookeeper镜像: docker pull zookeeper 2.了解镜像内容 拉取完镜像后,通过 docker inspect zookeep ...

  2. docker 搭建zookeeper集群和kafka集群

    docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...

  3. docker-compose搭建zookeeper集群环境 CodingCode

    docker-compose搭建zookeeper集群环境 使用docker-compose搭建zookeeper集群环境 zookeeper是一个集群环境,用来管理微服务架构下面的配置管理功能. 这 ...

  4. 如何搭建Zookeeper集群

     ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的 ...

  5. centos 6.5 搭建zookeeper集群

    为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等)目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费 ...

  6. 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇

    使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...

  7. 搭建zookeeper集群_其中一个报Mode: standalone,另外两个分别是leader和follower

    用3个zookeeper搭建一个zookeeper集群,首先配置好一个zookeeper1,其余两个都是按照zookeeper1复制过来,然后稍微修改 运行集群成功,查看zookeeper状态 可以看 ...

  8. docker搭建zookeeper集群

    1.在官网拉取镜像 docker pull zookeeper 2.根据镜像启动zookeeper容器 docker run -itd --name zookeeper1 -h zookeeper1 ...

  9. 从零开始学习docker之在docker中搭建redis(集群)

    docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...

随机推荐

  1. JavaScript回调函数和递归函数

    一.回调函数--通过函数的指针来调用函数 把一个函数的指针作为另一个函数的参数,当调用这个参数的时候,这个函数就叫做回调函数 在链式运动上会用到回调函数,之后运动会见到 A.通过指针来调用函数 B.通 ...

  2. iOS开发请您把握现在 — 面向未来学习

    iOS开发请您把握现在 — 面向未来学习 这一篇文章,如果你是一名iOS开发正好也处于开发晋升瓶颈迷茫期,不妨停下你的脚步,花五分钟看看,兴许有你需要的!文章结尾有彩蛋 群里常见的唱哀 iOS现在到底 ...

  3. python编程系列---多线程共享全局变量出现了安全问题的解决方法

    多线程共享全局变量出现了安全问题的解决方法 当多线程共享全局变量时,可能出现安全问题,解决机制----互斥锁:即在在一段与全局变量修改相关的代码中,假设一个时间片不足以完成全局变量的修改,就在这段代码 ...

  4. liunux中的标准输出。以及常用的 2>dev/null 命令的含义

    了解Linux怎样处理输入和输出是非常重要的.一旦我们了解其原理以后,我们就可以正确熟练地使用脚本把内容输出到正确的位置.同样我们也可以更好地理解输入重定向和输出重定向. 首先我们来了解一下linux ...

  5. Java8系列 (一) Lambda表达式

    函数式编程 在介绍Lambda表达式之前, 首先需要引入另一个概念, 函数式编程. 函数式编程是一种编程范式, 也就是如何编写程序的方法论.它的核心思想是将运算过程尽量写成一系列嵌套的函数调用,关注的 ...

  6. GridSplitter

    <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <Colum ...

  7. 使用C++代码打印数字正方形

    使用C++代码打印数字正方形 作为一名初学者,最近在跟着网课学习C++程序设计基础.在学习过程中遇到了一些习题,我根据自己的理解和思路写了一些代码实现,算是对自己学习过程的一个记录,也希望可以对别人有 ...

  8. vue 踩坑--项目名称不能与插件名称一样

    今天webpack搭建,命令行一直报错 百度说是项目名称为:vue npm 拒绝安装 后来才发现是 package.json的name名称也设成了vue 所以 修改一下就可以了.

  9. Alpha阶段--第七周Scrum Meeting

    任务内容 本次会议为第六周的Scrum Meeting会议 召开时间为周日下午5点,在潮音餐厅召开,召开时间约为30分钟,对已经完成项目的总结和对今后项目设计的展望 队员 任务 张孟宇 “我的”界面代 ...

  10. 我是如何在一周内拿到4份offer的?

    前言 大概一个月没写博客了吧,这段时间事情比较多(家里有事,请了一段时间假,正好利用剩余几天时间面了几次试),也没抽出来时间写博客,还好所有的事情已经处理完了,今天闲来无事就整理一下这几次面试过程中遇 ...