docker-compose搭建zookeeper集群
搭建zookeeper集群
创建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
```
docker-compose up -d 后台运行
docker-compose config 查看配置
docker exec -it <容器id> bash 交互式进入容器
bin/zkServer.sh status 查看zookeeper集群状态(follower/leader)
java使用zookeeper导入包和配置
导入包
```
'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'
```
在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 ```
代码示例
```
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));
```
docker-compose搭建zookeeper集群的更多相关文章
- Docker中搭建zookeeper集群
1.获取官方镜像 从dockerhub获取官方的zookeeper镜像: docker pull zookeeper 2.了解镜像内容 拉取完镜像后,通过 docker inspect zookeep ...
- docker 搭建zookeeper集群和kafka集群
docker 搭建zookeeper集群 安装docker-compose容器编排工具 Compose介绍 Docker Compose 是 Docker 官方编排(Orchestration)项目之 ...
- docker-compose搭建zookeeper集群环境 CodingCode
docker-compose搭建zookeeper集群环境 使用docker-compose搭建zookeeper集群环境 zookeeper是一个集群环境,用来管理微服务架构下面的配置管理功能. 这 ...
- 如何搭建Zookeeper集群
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的 ...
- centos 6.5 搭建zookeeper集群
为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等)目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制协调程序的反复编写浪费 ...
- 使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇
使用Cloudera Manager搭建zookeeper集群及HDFS HA实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.使用Cloudera Manager搭建zo ...
- 搭建zookeeper集群_其中一个报Mode: standalone,另外两个分别是leader和follower
用3个zookeeper搭建一个zookeeper集群,首先配置好一个zookeeper1,其余两个都是按照zookeeper1复制过来,然后稍微修改 运行集群成功,查看zookeeper状态 可以看 ...
- docker搭建zookeeper集群
1.在官网拉取镜像 docker pull zookeeper 2.根据镜像启动zookeeper容器 docker run -itd --name zookeeper1 -h zookeeper1 ...
- 从零开始学习docker之在docker中搭建redis(集群)
docker搭建redis集群 docker-compose是以多容器的方式启动,非常适合用来启动集群 一.环境准备 云环境:CentOS 7.6 64位 二.安装docker-compose #需要 ...
随机推荐
- Java之微信公众号开发
这次以文本回复作为案例来讲解Java相关得微信公众号开发. 首先必须要有一个个人微信公众号 个人微信公众号相关的接口权限有限,不过用于个人学习体验一下足够了,如图: 然后进入微信公众后台,点击基本配置 ...
- 为什么要实现 IDisposable 接口?
一.背景 最近在精读 <CLR Via C#>和 <Effective C#> 的时候,发现的一个问题点.一般来说,我们实现 IDisposable 接口,是为了释放托管资源和 ...
- 小白学 Python(4):变量基础操作
人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 前面的文章中,我们介绍了 ...
- Cocos2d-x 学习笔记(26) 从源码学习 DrawCall 的降低方法
[Cocos2d-x]学习笔记目录 本文链接:https://www.cnblogs.com/deepcho/cocos2dx-drawcall-glcalls 1. 屏幕左下角 我们通常在Cocos ...
- Cocos2d-x 学习笔记(21.1) ScrollView “甩出”效果与 deaccelerateScrolling 方法
1. 简介 “甩出”效果是当我们快速拖动container并松开后,container继续朝原方向运动,但是渐渐减速直到停止的效果. ScrollView的onTouchEnded方法会设置Timer ...
- 实用---生命游戏 Java
本程序由四个类组成: 其中Init_data,用于初始化各个活细胞的状态judge_state,用于判断下一代的细胞状态,并进行更新.set_color,用于给GUI界面中各个细胞涂色set_fram ...
- 为什么重写equals必须重写hoshCode的基础分析
为什么重写equals必须重写hoshCode的基础分析 1.我们先来了解下原生的equals和hashCode代码 原生equals:它判断的是两个对象是否相等 原生hashCode值:它是根据内存 ...
- 热烈祝贺达孚电子(NDF)网站上线
尊敬的客户: 您们好! 为适应公司发展的需要,树立公司的良好形象,满足大家更多的了解电容器系列产品及公司的服务,经过1个多月的筹备,在2019年10月21日公司网站正式上线啦,这标志着NDF(达孚电子 ...
- 关于while和do while 的个人理解
先上代码 int x=425; System.out.println("循环开始,我的初始值为:x="+x); //425 do { System.out.println(&quo ...
- ajax跨域简单请求与复杂请求
开发网站时经常会用到跨域资源共享(简称cors,后面使用简称)来解决跨域问题,但是在使用cors的时候,http请求会被划分为两类,简单请求和复杂请求,而这两种请求的区别主要在于是否会触发cors预检 ...