docker-compose搭建zookeeper集群

搭建zookeeper集群

  1. 创建docker-compose.yml文件

     ```
             version: '3.1'
             services:
                     zoo1:
                             image: zookeeper
                             restart: always
                             container_name: zoo1
                             ports:
                                     - 2181:2181
                             volumes:
                                     - /usr/local/docker/zookeeper/zoo1/data:/data
                                     - /usr/local/docker/zookeeper/zoo1/datalog:/datalog
                             environment:
                                     ZOO_MY_ID: 1
                                     ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
                     zoo2:
                             image: zookeeper
                             restart: always
                             container_name: zoo2
                             ports:
                                     - 2182:2181
                             volumes:
                                     - /usr/local/docker/zookeeper/zoo2/data:/data
                                     - /usr/local/docker/zookeeper/zoo2/datalog:/datalog
                             environment:
                                     ZOO_MY_ID: 2
                                     ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
                     zoo3:
                             image: zookeeper
                             restart: always
                             container_name: zoo3
                             ports:
                                     - 2183:2181
                             volumes:
                                     - /usr/local/docker/zookeeper/zoo3/data:/dada
                                     - /usr/local/docker/zookeeper/zoo3/datalog:/datalog
    
                             environment:
                                     ZOO_MY_ID: 3
                                     ZOO_SERVERS: server.1=zoo1:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181
     ```
  2. docker-compose up -d 后台运行
  3. docker-compose config 查看配置
  4. docker exec -it bash 交互式进入容器
  5. bin/zkServer.sh status 查看zookeeper集群状态(follower/leader)

java使用zookeeper导入包和配置

  1. 导入包

     ```
             'org.apache.zookeeper:zookeeper:3.5.6',
             "org.apache.logging.log4j:log4j:2.12.1",
             'org.apache.logging.log4j:log4j-1.2-api:2.12.1',
             'org.apache.logging.log4j:log4j-core:2.12.1'
     ```
  2. 在resources目录下创建 log4j2.properties文件并配置
     ```
     log4j.rootLogger=INFO,stdout
     log4j.appender.stdout=org.apache.log4j.ConsoleAppender
     log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
     log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
     log4j.appender.logfile=org.apache.log4j.FileAppender
     log4j.appender.logfile.File=target/spring.log
     log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
     log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n
    
     ```
  3. 代码示例
     ```
     public static void main(String[] args) throws IOException, KeeperException, InterruptedException {
             String connect = "192.168.145.128:2181,192.168.145.128:2182,192.168.145.128:2183";
             int timeout = 30000;
             ZooKeeper zooKeeper = null;
             ZooKeeper finalZooKeeper = zooKeeper;
             zooKeeper = new ZooKeeper(connect, timeout, new Watcher() {
             @Override
             public void process(WatchedEvent event) {
    
     //                    System.out.println("start");
     //                    List<String> children = null;
     //                    try {
     //                        children = finalZooKeeper.getChildren("/hhh", true);
     //                        children.forEach(item -> System.out.println(item));
     //                    } catch (KeeperException e) {
     //                        e.printStackTrace();
     //                    } catch (InterruptedException e) {
     //                        e.printStackTrace();
     //                    }
     //                    System.out.println("end");
     //                }
    
             }
             });
    
             //必须连接好才能创建目录
             System.out.println(zooKeeper.getState());
             while (true) {
             if (ZooKeeper.States.CONNECTING == zooKeeper.getState()) {
                     Thread.sleep(1000);
             } else {
                     break;
             }
             }
             System.out.println(zooKeeper.getState());
    
     //        String path = zooKeeper.create("/hhh", "test11".getBytes()
     //                , ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
     //        System.out.println(path);
    
             List<String> children = zooKeeper.getChildren("/", true);
             children.forEach(item -> System.out.println(item));
             byte[] data = zooKeeper.getData("/hhh", false, null);
             System.out.println(new String(data));
     ```

原文地址:https://www.cnblogs.com/yloved/p/11881128.html

时间: 2024-09-29 08:00:21

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

docker 搭建zookeeper集群和kafka集群

docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之一,负责快速在集群中部署分布式应用. Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排.Compose 定位是 「定义和运行多个 Docker 容器的应用(Defining and running multicontainer Docker appl

基于docker环境搭建kafka集群(三台真机之间)

环境基于docker,三台物理主机192.168.0.27.192.168.0.28.192.168.0.29,每台主机部署一个zookeeper节点,一个kafka节点,共三个zookeeper节点,三个kafka节点,容器之间的网络采用host模式 1.拉取镜像 2.启动容器 step1. 创建配置文件zoo.cfg并替换容器内的该文件,不同的镜像有可能zoo.cfg位置不同 # The number of milliseconds of each tick tickTime=2000 #

zookeeper(三)--- 搭建zookeeper集群

zookeeper(三)--- 搭建zookeeper集群 环境 vagrant虚拟机 centos7 SecureCRT 软件 zookeeper3.4.6.tar.gz 步骤 1.使用vagrant创建3个虚拟机 IP地址:192.168.21.222,192.168.21.223,192.168.22.224 2.使用SecureCRT链接虚拟机 3.安装配置zookeeper 安装配置Zookeeper集群 解压 tar xzvfzookeeper-3.4.6.tar.gz 重命名解压后

如何搭建Zookeeper集群

 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.组服务等.其部署方式有单机部署和集群部署,单机部署意义不大,下面主要介绍集群部署. 因硬件环境的限制,本次搭建Zookeeper集群是在Windows且是单机的环境下搭建的,也就是伪集群:不过伪集群跟集群区别不大,往下看就知道啦. 一.去Zookeeper官

使用 Docker搭建 ZooKeeper 集群

1.镜像下载 docker pull zookeeper 2.启动 ZK 镜像 >>> docker run --name my_zookeeper -d zookeeper:latest 这个命令会在后台运行一个 zookeeper 容器, 名字是 my_zookeeper, 并且它默认会导出 2181 端口.接着我们使用: docker logs -f my_zookeeper 3.使用 ZK 命令行客户端连接 ZK 因为刚才我们启动的那个 ZK 容器并没有绑定宿主机的端口, 因此我

Dcoker 搭建ZooKeeper集群

原来学习 ZK 时, 我是在本地搭建的伪集群, 虽然说使用起来没有什么问题, 但是总感觉部署起来有点麻烦. 刚好我发现了 ZK 已经有了 Docker 的镜像了, 于是就尝试了一下, 发现真是爽爆了, 几个命令就可以搭建一个完整的 ZK 集群. 下面我简单记录一下使用 Docker 搭建 ZK 集群的一些步骤. 镜像下载 hub.docker.com 上有不少 ZK 镜像, 不过为了稳定起见, 我们就使用官方的 ZK 镜像吧.首先执行如下命令: docker pull zookeeper 当出现

docker容器搭建kafka集群

Docker搭建kafka集群 ?  需求说明: 公司目前有三个环境,生产环境,测试和演示环境,再包括开发人员还有开发的环境,服务器上造成了一定的资源浪费,因为环境需要依赖zookeeper和kafka,redis这些服务,只要搭一个环境,所有东西都要重新搭一遍,所以搭建kafka集群,让大部分环境都连接一个集群,把单个的服务变成公共的,稳定并易于管理 ?  Kafka集群管理和状态保存是通过zookeeper来实现的,要先部署zk集群 ?  环境说明: centos系统安装docker,通过d

记一次多台linux搭建zookeeper集群

自己搭建了zookeeper集群,使用了三台linux,搭建三节点的集群,这里记录一下. 在linux上可以使用wget+网址+版本号,wget和网址之间有个空格,就可以直接在linux上联网下载相应的软件版本. 首先,在/usr/local下执行 # wget http://archive.apache.org/dist/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz 解压:# tar -zxvf zookeeper-3.4.5.tar.gz

1分钟,通过docker-compose 搭建zookeeper 集群

一.创建三节点 zookeeper 集群 将 docker-compose.yml 保存到当前命令行目录下 docker-compose.yml 文件 version: '2' networks: zk: services: zookeeper1: image: zookeeper container_name: zk1.cloud networks: - zk ports: - "2181:2181" environment: ZOO_MY_ID: 1 ZOO_SERVERS: se